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

学交互设计网站建筑网官网下载

学交互设计网站,建筑网官网下载,asp网站图片,网站后台管理增加功能本文介绍了Python中单下划线和双下划线的5种表现形式#xff0c;以及一些使用方法。其中有一些含义仅仅是依照约定#xff0c;被视作是对程序员的提示#xff0c;而有一些含义是由Python解释器严格执行的。 单前导下划线#xff1a;_var单末尾下划线#xff1a;var_双前导…本文介绍了Python中单下划线和双下划线的5种表现形式以及一些使用方法。其中有一些含义仅仅是依照约定被视作是对程序员的提示而有一些含义是由Python解释器严格执行的。 单前导下划线_var单末尾下划线var_双前导下划线__var双前导和末尾下划线__var__单下划线_ 1.单前导下划线 _var 下划线前缀的含义是告知其他程序员以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。这不是Python强制规定的。而是一个约定俗成的含义。 它是对程序员的一个提示意味着Python社区一致认为它应该是什么意思但程序的行为不受影响。 例子: class Test:def __init__(self):self.foo 11self._bar 23实例化此类并尝试访问在__init__构造函数中定义的foo和_bar属性会发生什么情况 t Test()t.foo 11t._bar 23你会看到_bar中的单个下划线并没有阻止我们“进入”类并访问该变量的值。这是因为Python中的单个下划线前缀仅仅是一个约定。 但是如果使用通配符从模块中导入所有名称则Python不会导入带有前导下划线的名称。 from my_module import *external_func() 23_internal_func() NameError: name _internal_func is not defined2. 单末尾下划线 var_ 有时候一个变量的最合适的名称已经被一个关键字所占用。 因此像class或def这样的名称不能用作Python中的变量名称。 在这种情况下你可以附加一个下划线来解决命名冲突 def make_object(name, class): SyntaxError: invalid syntax def make_object(name, class_): ... pass总之单个末尾下划线后缀是一个约定用来避免与Python关键字产生命名冲突。 PEP 8解释了这个约定。 3. 双前导下划线 __var ①名称改写 双下划线还可用于名称改写即将属性或方法前面的双下划线和类名组合起来以防止子类意外覆盖父类的属性或方法。 class Test:def __init__(self):self.foo 11self._bar 23self.__baz 23让我们用内置的dir()函数来看看这个对象的属性 t Test()dir(t) [_Test__baz, __class__, __delattr__, __dict__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __gt__, __hash__, __init__, __le__, __lt__, __module__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__, __weakref__, _bar, foo]以上是这个对象属性的列表。 让我们来看看这个列表并寻找我们的原始变量名称foo_bar和__baz 我保证你会注意到一些有趣的变化。 self.foo变量在属性列表中显示为未修改为foo。 self._bar的行为方式相同 - 它以_bar的形式显示在类上。 就像我之前说过的在这种情况下前导下划线仅仅是一个约定。 给程序员一个提示而已。 然而对于self.__baz而言情况看起来有点不同。 当你在该列表中搜索__baz时你会看不到有这个名字的变量。 __baz出什么情况了 如果你仔细观察你会看到此对象上有一个名为_Test__baz的属性。 这就是Python解释器所做的名称修饰。 它这样做是为了防止变量在子类中被重写。 ②名称修饰 双下划线用于名称修饰即将属性或方法前面的双下划线作为前缀使其成为私有成员。私有成员只能在类内部访问无法在类外部直接访问 class ManglingTest:def __init__(self):self.__mangled hellodef get_mangled(self):return self.__mangled ManglingTest().get_mangled() helloManglingTest().__mangled AttributeError: ManglingTest object has no attribute __mangled4. 双前导和双末尾下划线__var__ 以双下划线开头结尾的变量不会被python解释器修改。 以双下划线开头结尾的方法在python中称为魔法方法。这样的例子有__init__对象构造函数或__call__ ,它使得一个对象可以被调用。 为了避免与将来Python语言的变化产生冲突我应该避免使用双下划线开头和结尾的名称。 5.单下划线 _ 按照习惯有时候单个独立下划线是用作一个名字来表示某个变量是临时的或无关紧要的。 例如在下面的循环中我们不需要访问正在运行的索引我们可以使用“_”来表示它只是一个临时值 for _ in range(32): ... print(Hello, World.)你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量以忽略特定的值。 同样这个含义只是“依照约定”并不会在Python解释器中触发特殊的行为。 单个下划线仅仅是一个有效的变量名称会有这个用途而已。 car (red, auto, 12, 3812.4)color, _, _, mileage car color redmileage 3812.4_ 126.总结 模式格式含义单前导下划线_var命名约定仅供内部使用单末尾下划线var_命名约定避免与其他关键字命名冲突双前导双末尾下划线__var触发“名称修饰”仅能在内部调用双前导双末尾下划线__var__魔法方法单下划线_用作临时或者无意义的变量名称
http://www.zqtcl.cn/news/75567/

相关文章:

  • 海南省城乡建设厅网站学编程的费用一般是多少
  • asp net做购物网站汕头制作手机网站
  • 微信公众号里的网站怎么做的青岛住房和城乡建设厅网站
  • 河南网站建设哪里有seo撰写网站标题以及描述的案例
  • 网络公司网站推广深圳市城乡和建设局网站首页
  • 做网站的步骤是什么交易网站的建设规划
  • 电子商务网站规划与设计分成型网站建设
  • 云南做公司网站多少钱做网站制作的公司
  • 建站管理过程新型网络营销模式
  • 中小企业门户网站的建设方案邢台建网站公司
  • 展示型商城订单网站建设安装和使用wordpress
  • 网络科技有限公司seo won jin
  • 网站建设违约责任条款网站建设费属于宣传费吗
  • 代做标书网站做网站后要回源码有何用
  • 建设网站教程论坛优化大师软件大全
  • 网站建设的可研设计报告网站建设项目分析
  • 个人建站哪类站赚钱网站开发模式有什么
  • 建设银行啦卡信用网站网站内容建设需要哪些策略呢
  • 做网站运营有前景么dw可以用来做网站吗
  • 电子商务类网站wordpress 分类目录 高亮
  • 功能性的网站归档系统如何创建个人网站模板
  • 做网站如何赚钱知乎负责网站建设
  • 在线动画手机网站模板下载苏州百度推广排名
  • 内江做网站的公司域名买完了网站建设
  • 建设手机版网站阿里网站建设需要准备什么软件
  • 舟山建设工程信息网站万户网络科技有限公司怎么样
  • 商城网站源码免费哪个厂家的logo品牌设计
  • 在线网站做情侣头像游戏公司有哪些
  • 公司网站建设企划书专门查大学的网站
  • wordpress案例站点网盟推广有哪些