菜鸟IT的博客 >> Python
类class里面的“方法”和“属性字段”被私有化,不允许在“类class”的外面被调用,就需要在类里的“方法”函数名称前面加2个下划线。
这个是还没有被私有化的类class的案例 - https://www.17wx.net/17wx/8539/d.htm
↓
以下是把“类”私有化之后:
——————————
class Person:
def __setName(self,name):
self.name=name
def __getName(self):
return self.name
def __sayHello(self):
print("hi,hello."+self.name)
p=Person()
p.setName("张三")
print("第1次取值:",p.getName())
# 重新赋值
p.setName("王五")
print("第2次取值:",p.getName())
# 新的赋值方法,也就是类的属性字段默认可以被调用的。
# 类的属性字段也是默认开放在“类”的外面的。
p.name="李四"
print("第3次取值:",p.getName())
print("直接换1种方式取值:",p.name)
# 在类的内部,不同的方法之间是可以调用类的同1个属性字段
p.sayHello()
——————————
输出结果:(程序报错了)
Traceback (most recent call last):
File "F:/Python-Test/XueXiJieMianKaiFa/75_关于类的属性和私有化.py", line 11, in <module>
p.setName("张三")
AttributeError: 'Person' object has no attribute 'setName'
进程已结束,退出代码1
菜鸟IT博客[2021.12.18-14:51] 访问:295