1.访问属性
python中默认对象的属性和方法都是公开的,可直接通过点操作符(.)来进行访问;
为了实现私有的特征,在Python中只需在变量名或函数名前加上"__"(两个下划线),则该变量或者该函数变为私有的。
#公有和私有 class person: name="小贾" __id="1" def setName(self,name): self.name=name p=person() print(p.name) p.setName("小吴") print(p.name) print(p.__id)
运行结果:
小贾 小吴 Traceback (most recent call last): File "d:PythonWorkSpace.vscode est.py", line 228, in <module> print(p.__id) AttributeError: 'person' object has no attribute '__id'
可以看到,无法直接访问到id,id为私有变量.
但是python这个其实是伪私有,仅仅是把下划线开头的变量改名而已。通过"_类名__变量名"仍然可以访问:
print(p._person__id)
2.类、类对象、实例对象
注意:类中定义的属性是静态变量!!!
为什么要加self参数呢?
self参数传入的第一个就是实例对象。