美文网首页
python下划线定义属性

python下划线定义属性

作者: 土豆特别想爬山 | 来源:发表于2020-02-14 18:00 被阅读0次

类的私有变量和私有方法

在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性

特殊变量命名

1、 _xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如: 当使用“from M import”时,不会将以一个下划线开头的对象引入 。

2、 __xx 双下划线的表示的是私有类型的变量。只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo)

3、 __xx__定义的是特列方法。用户控制的命名空间内的变量或是属性,如init , __import__或是file 。只有当文档有说明时使用,不要自己定义这类变量。 (就是说这些是python内部定义的变量名)

在这里强调说一下私有变量,python默认的成员函数和成员变量都是公开的,没有像其他类似语言的public,private等关键字修饰.但是可以在变量前面加上两个下划线"_",这样的话函数或变量就变成私有的.这是python的私有变量轧压(这个翻译好拗口),英文是(private name mangling.) **情况就是当变量被标记为私有后,在变量的前端插入类名,再类名前添加一个下划线"_",即形成了_ClassName__变量名.**

Python内置类属性

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ :类的文档字符串

__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)

__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

相关文章

  • python下划线定义属性

    类的私有变量和私有方法 在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性 特殊变量命名 1、 ...

  • python变量——单下划线和双下划线的区别

    一、变量的定义 在Python中,有以下几种方式来定义变量: xx:公有变量 _xx:前置单下划线,私有化属性或方...

  • django 模型

    属性命名限制: (1) . 不能是python 的保留关键字(2) . 不允许使用连续的下划线(3) . 定义属...

  • 装饰器之@property装饰器 @setter修改器

    一、python私有属性 例如,其中__name,__age为私有属性(一般实际使用时,不用双下划线,用单下划线隐...

  • day-16类和对象

    私有化 python的私有化 python中在属性前面加两个下划线,就可以将属性或者方法私有化(只能两个下划线开头...

  • python _、__和__xx__的区别

    _xx 单下划线开头 Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提...

  • 五、 OC底层面试题

    1.属性&成员变量&属性的区别 属性(property):在OC中是通过@property开头定义,且是带下划线成...

  • 属性property介绍:1-属性定义

    属性property在类定义中使用非常普遍,属性定义后,会创建一个与该属性名称同名且带下划线的实例变量,与此同时,...

  • Objective-C分类中能否定义属性?

    结论:分类中可以定义属性,但不会自动生成带下划线的成员变量,需要自己定义一个带下划线的成员变量并实现getter方...

  • python中的特殊属性

    Python中有很多以两个下划线开始,同时也以两个下划线结束的属性或函数,例如__init__,__del__等。...

网友评论

      本文标题:python下划线定义属性

      本文链接:https://www.haomeiwen.com/subject/dasjfhtx.html