📅  最后修改于: 2023-12-03 15:23:27.093000             🧑  作者: Mango
在Python中访问实例变量的方法如下:
以示例类Person
为例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
可以通过类的实例访问实例变量,如下所示:
person = Person('Tom', 18)
print(person.name) # 输出 'Tom'
print(person.age) # 输出 18
可以定义getter
和setter
方法,用于访问和修改实例变量:
class Person:
def __init__(self, name, age):
self.set_name(name)
self.set_age(age)
def set_name(self, name):
self._name = name
def set_age(self, age):
self._age = age
def get_name(self):
return self._name
def get_age(self):
return self._age
可以通过调用方法访问实例变量,如下所示:
person = Person('Tom', 18)
print(person.get_name()) # 输出 'Tom'
print(person.get_age()) # 输出 18
@property
是Python内置的装饰器,可以将方法转换成属性访问:
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
@property
def name(self):
return self._name
@property
def age(self):
return self._age
可以通过调用方法访问实例变量,但是不需要调用方法:
person = Person('Tom', 18)
print(person.name) # 输出 'Tom'
print(person.age) # 输出 18
@setter
是@property
的补充,可以将方法转换成设置属性值的方法:
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
@property
def age(self):
return self._age
@age.setter
def age(self, age):
self._age = age
可以通过属性访问实例变量,同时可以通过属性设置实例变量的值:
person = Person('Tom', 18)
print(person.name) # 输出 'Tom'
person.name = 'Jerry'
print(person.name) # 输出 'Jerry'
以上四种方法都可以用于访问和修改实例变量,根据使用场景选择相应的方法即可。