python类相关基础知识学习
python——类
面向对象编程需要使用类,类和实例息息相关,有了类之后我们必须创建一个实例,这样才能调用类的方法:
1 | class<类名>: |
类私有属性:_private_attrs两个下划线开头,声明该属性为私有,不能再类的外部被使用或直接访问,在类的内部的方法中使用self._private_attrs
类的方法:在类的内部,使用def关键字可以为类定义个一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数
类的专有方法
1 | __init__ 构造函数,在生成对象时调用 |
参考:https://blog.csdn.net/brucewong0516/article/details/79114977
class的属性
例:
1 | class person(): |
数据属性
数据属性分为类数据属性和实例数据属性
类数据属性:
就是上面的tall,可以被添加
1 | class person(object): |
特殊的类属性:
对于所有的类,都有一组特殊的属性
_ _ name_ _:类的名字(字符串)
_ _ doc _ _ :类的文档字符串
_ _ bases _ _:类的所有父类组成的元组
_ _ dict _ _:类的属性组成的字典
_ _ module _ _:类所属的模块
_ _ class _ _:类对象的类型
实例数据属性:
例如name,只能通过实例访问
1 | Bruce = person("Bruce", 25,60) #实例数据属性只能通过实例访问 |
对于类数据属性和实例数据属性,可以总结为:
1.类数据属性属于类本身,可以通过类名进行访问/修改
2.类数据属性也可以被类的所有实例访问/修改
3在类定义之后,可以通过类名动态添加类数据属性,新增的类属性也被类和所有实例共有
4实例数据属性只能通过实例访问
5在实例生成后,还可以动态添加实例数据属性,但是这些实例数据属性只属于该实例
小结
这里主要知道什么是类数据什么是实例数据,加深对类这一个概念的理解
参考:https://blog.csdn.net/brucewong0516/article/details/79118703
class的访问控制
1、单下划线”_”
在Python中,通过单下划线”“来实现模块级别的私有化,变量除外。一般约定以单下划线””开头的函数为模块私有的,也就是说”from moduleName import * “将不会引入以单下划线”_”开头的函数。
现在有一个模块 example_example.py,内容用如下,模块中一个变量名和一个函数名分别以”_“开头:
2、双下划线”__”
1.对于Python中的类属性,可以通过双下划线”__“来实现一定程度的私有化,因为双下划线开头的属性在运行时会被”混淆”(mangling)。
2.双下划线的另一个重要的目地是,避免子类对父类同名属性的冲突
吐槽:学的很无语,因为看的不是很懂,感觉懵懵的==
https://blog.csdn.net/brucewong0516/article/details/79121179
python类相关基础知识学习