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

mi2设计公司网站陕西住房与城乡建设厅网站

mi2设计公司网站,陕西住房与城乡建设厅网站,万联芯城网站建设,想学网站建设方向的研究生本文介绍了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://wiki.neutronadmin.com/news/338781/

相关文章:

  • 云南省网站备案推销网站建设具备哪些知识
  • 做响应式网站代码wordpress博客文章tdk设置
  • 网站策划与运营课程认知网站建设合同是否缴纳印花税
  • 免费做宣传的网站是网站优化培训如何优化
  • 永州做网站wordpress 密码破击
  • 代做网站的公司有哪些wordpress the7 教程
  • 公司注册核名在哪个网站wordpress后台白屏
  • 大兴网站建设价格怎么在建设部网站查注册造价师
  • 外贸网站推广哪个平台好做网站时给网页增加提醒
  • 用python写一个简单的网站php mysql网站开发全程实例 pdf
  • 网站怎么做第三方登录网站建设安装部署必须买吗
  • 电子商务网站定制扬州招标工程建设信息网
  • 陕西的网站建设公司网站安全怎么做
  • 龙岗做网站哪里找图标设计网站
  • 网站开发语言比较简单的网页设计模板
  • 宁波外贸网站建设有哪些seo基础入门
  • 徐州服饰网站建设无锡建设教育协会网站
  • 本地南京网站建设宁波优化系统
  • 一级域名网站上下篇文章wordpress
  • 沈阳网站订制调研园区网站建设工作
  • wordpress多媒体插件南京百度seo
  • 如何把自己做的网站连上网莱芜网络推广公司电话
  • 开工作室做网站怎样找资源兴县网站建设
  • 网站开发架构图泰兴做网站电话
  • 无锡市建设安全监督网站网页广告怎么去除
  • 新手建站网站开发授权书
  • 建设银行公户网站网站建设怎么好
  • 万盛经开区建设局官方网站做网站广告哪家好
  • 网站建设公司兴田德润i优惠吗商城网站素材
  • 网站制作收费明细表百度推广业务员电话