class foo:
def __init__(self,name,age):
self.name = name
self.__age = age
obj=foo("andy",18) #创建对象并传入数据
print(obj.name) #通过对象访问数据
print(obj.__age)
我们一般通过对象.变量名访问数据,这就是公有字段,如果我们不想别人可以从外面直接访问或者修改这个数据,可以在内部创建这个字段的时候加两个下划线:__age 这样就是私有字段,在外部无法直接访问
那怎样访问呢?
虽然无法直接访问,但却可以通过一个方法间接访问:
class foo:
def __init__(self,name,age):
self.name = name
self.__age = age
def show(self):
return self.__age #创建方法来实现间接访问
obj=foo("andy",18) #创建对象并传入数据
print(obj.name) #通过对象访问数据
ret=obj.show() #通过方法获取数据 间接访问
print(ret)
加了两个下划线后 不止普通字段无法在外部访问,静态字段也无法在外部访问,只能通过方法间接访问。
class foo:
__name=1
@staticmethod
def show():
return