在Python3中,通过在属性名称前面添加两个下划线“__”定义私有字段。私有字段只能在类的内部访问,外部不能通过实例对象直接访问。下面为大家展示一个简单的例子:
class Person: def __init__(self, name, age): self.__name = name # 私有字段 self.age = age def introduce(self): print(f"My name is {self.__name}. I am {self.age} years old.") person = Person("Tom", 18) print(person.age) # 输出 18 print(person.__name) # 报错 AttributeError: 'Person' object has no attribute '__name' person.introduce() # 输出 My name is Tom. I am 18 years old.
可以看到,当在外部直接尝试访问私有字段__name时,Python3会抛出AttributeError错误。如果你真的需要访问私有字段,可以调用相应的getter和setter方法。
下面为大家展示一个使用getter和setter方法的例子:
class Person: def __init__(self, name, age): self.__name = name # 私有字段 self.__age = age def introduce(self): print(f"My name is {self.__name}. I am {self.__age} years old.") def get_name(self): return self.__name def set_name(self, name): self.__name = name person = Person("Tom", 18) person.introduce() # 输出 My name is Tom. I am 18 years old. print(person.get_name()) # 输出 Tom person.set_name("Jerry") person.introduce() # 输出 My name is Jerry. I am 18 years old.
通过此方法,可以轻松地访问私有字段。
上一篇 html旅游日历代码
下一篇 python3 界面编辑