理解Python类的私有属性和方法
在Python中,类的属性分为三种类型:公共(public)、保护(protected)和私有(private)。
- 公共属性:无修饰的属性名。所有实例都可以访问到这类属性。
class Person:
name = 'John' # 公共属性
person1 = Person()
person2 = Person()
print(person1.name) # 输出 John
print(person2.name) # 输出 John
- 保护属性:以
__
开头的属性名。类的所有实例(包括子类)都可以访问这类属性,但不能直接通过对象调用方法。
class Person:
__age = 0 # 保护属性
def __init__(self, name):
self.name = name
def get_age(self):
return self.__age # 可以返回,但不能直接调用
person1 = Person('Alice')
person2 = Person('Bob')
print(person1.get_age()) # 输出 0
print(person2.get_age()) # 输出 0
- 私有属性:以双下划线
__
开头的属性名。这类属性只能在类的内部(包括方法)访问,外部无法直接访问。
class Person:
__password = 'secret' # 私有属性
def __init__(self, name):
self.name = name
def login(self, password):
if password == self.__password: # 可以返回私有属性
return True
else:
return False
person1 = Person('Alice')
print(person1.login('wrong password'))) # 输出 False,但不能直接调用
总结一下,类的私有属性和方法只能在类内部访问,外部无法通过对象直接操作。
还没有评论,来说两句吧...