当前位置: 首页 > news >正文

技术进阶 javascript开发培训机构工具站seo

技术进阶 javascript开发培训机构,工具站seo,重庆网上注册公司,wap网站预览Python 私有变量和私有方法介绍 关于 Python 私有变量和私有方法,通常情况下,开发者可以在方法或属性名称前加上单下划线(_),以表示该方法或属性仅供内部使用,但这只是一种约定,并没有强制执行禁…

Python 私有变量和私有方法介绍

关于 Python 私有变量和私有方法,通常情况下,开发者可以在方法或属性名称前加上单下划线(_),以表示该方法或属性仅供内部使用,但这只是一种约定,并没有强制执行禁止外部访问。要真正实现“私有”的效果,可以在方法或属性名称前加上双下划线(__),在 Python 内部自动将方法或属性名称改写,这样就无法从类的外部直接访问了,但仍然可以通过在其前面添加单下划线和类名的方式来访问。

Python 私有变量

在Python中,私有变量是指在类定义中以两个下划线(__)开头的变量。这些变量被认为是私有的,因为它们不能从类的外部直接访问。

【Python 私有变量的官方说明 https://docs.python.org/zh-cn/3/tutorial/classes.html#private-variables 】

Python将双下划线作为前缀来对属性进行名称修饰,使得这些属性在类的外部无法通过简单的名称访问。但是,在类的内部,这些属性可以像其他属性一样使用,只不过需要使用特殊的名称来引用它们。

例如:

class MyClass:def __init__(self):self.__private_var = 42def get_private_var(self):return self.__private_varmy_object = MyClass()
print(my_object.get_private_var())  # 输出结果:42
#print(my_object.__private_var)      # 报错:AttributeError: 'MyClass' object has no attribute '__private_var'
print(my_object._MyClass__private_var)# 输出结果:42 ,可以这样访问私有变量,但是不建议

在上述代码中,我们定义了一个名为 MyClass 的类,并在其构造函数 __init__() 中设置了一个私有变量 __private_var。然后,我们定义了一个名为 get_private_var() 的方法,该方法返回私有变量 __private_var 的值。

当我们创建一个新的 MyClass 实例并调用 get_private_var() 方法时,我们可以成功地获取私有变量的值并输出它。但是,当我们尝试直接访问私有变量 __private_var 时,Python会抛出 AttributeError 异常,因为该属性不是公共的,不能从类的外部直接访问。

需要注意的是,在Python中,私有属性不是真正的私有。它们仍然可以通过特殊的名称来访问。具体来说,Python将私有变量名解释为一个新的变量名,这个变量名包括类名和变量名,并且以单下划线作为前缀,例如 _MyClass__private_var。虽然这种方式可以在某些情况下访问私有变量,但是强烈建议不要这样做,因为这会使你的代码更难理解和维护。

Python私有方法

在 Python 中,可以使用双下划线(__)来定义“私有”方法,这些方法只能在类的内部访问。具体来说,双下划线开头的方法名称会被 Python 解释器重命名为 _ClassName__my_private_method 的形式,因此在外部无法直接调用。

例如:

class MyClass:def __init__(self):self.__my_private_var = 42def __my_private_method(self):print("This is a private method.")print(f"The value of my_private_var is {self.__my_private_var}.")obj = MyClass()
# obj.__my_private_method()  # 报错:AttributeError: 'MyClass' object has no attribute '__my_private_method'
obj._MyClass__my_private_method()  # Output: This is a private method. The value of my_private_var is 42.

在这个示例中,我们定义了一个 MyClass 类,并在其中定义了一个“私有”方法 __my_private_method,该方法只能在类的内部访问。然后,我们创建了一个 MyClass 的对象并将其赋给变量 obj,但如果尝试直接调用 obj.__my_private_method(),会导致 AttributeError 错误,因为该方法是“私有”的。相反,我们可以通过 _MyClass__my_private_method() 方法来间接地调用该方法。

尽管在 Python 中可以通过特殊的名称来访问“私有”方法,但这并不是一种好的编程风格。

附录

python/类和实例-访问限制https://www.codenong.com/cs106668667/

Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解https://www.jb51.net/article/157112.htm

http://www.ds6.com.cn/news/9776.html

相关文章:

  • 门户网站开发jz190windows优化大师好吗
  • 网络营销以什么为中心保定seo外包服务商
  • wordpress 仿站 主题免费seo工具大全
  • 个人做旅游网站怎样关键词优化排名平台
  • php动态网站开发课后习题答案新网域名
  • 彭山网站建设奶茶软文案例300字
  • 局域网端口映射做网站百度知识营销
  • 百度统计 网站速度诊断关键词com
  • 做网站完整过程沪深300指数基金
  • 国外的服务器建设的网站磁力搜索引擎不死鸟
  • 淄博乐达信息技术网站整合营销是什么
  • 建立网站的英文上海网站搜索排名优化哪家好
  • 推荐佛山顺德网站建设aso榜单优化
  • 网站建设售后服务合同营销网络
  • 自己做淘客网站成本大吗cps推广联盟
  • 熊掌号接合网站做seoapp001推广平台官网
  • 南阳网站建设多少钱建网站多少钱
  • 成都网站建设kaituozu网络热词作文
  • 功能多的免费网站建设新网站多久会被百度收录
  • 网站开发工程师是做什么的惠州seo
  • 网站开发文案登封网站关键词优化软件
  • wordpress H2标签小红书笔记关键词排名优化
  • 个人网站页面模板免费网站注册com
  • wordpress cosy主题2.05纵横seo
  • 北京企业官网网站建设哪家好网页广告怎么投放
  • 海南茶叶网站建设信息流投放平台
  • 外贸做的社交网站网络营销的手段有哪些
  • 网站建设规划图网站收录查询入口
  • 网站开发合同受托方优化营商环境应当坚持什么原则
  • 南昌专门做网站的公司免费二级域名注册申请