在 Python 3.x 中,属性是一种特殊的类成员,它定义了对象的状态和行为。属性通常用于存储对象的内部状态和数据,提供对其进行访问、修改和删除的接口。
Python 的属性可以分为两种类型:实例属性和类属性。
class MyClass:
def __init__(self, name, age):
self.name = name # 定义实例属性
self.age = age
def get_name(self):
return self.name # 访问实例属性
my_obj = MyClass("Alice", 18)
print(my_obj.get_name()) # 输出 "Alice"
class MyClass:
class_attr = 42 # 定义类属性
def __init__(self, name, age):
self.name = name
self.age = age
my_obj1 = MyClass("Alice", 18)
my_obj2 = MyClass("Bob", 20)
print(my_obj1.class_attr) # 输出 42
print(my_obj2.class_attr) # 输出 42
需要注意的是,当实例属性和类属性同名时,实例属性会覆盖掉类属性。如果想要访问类属性,可以使用类名或 self.__class__
来访问,如下所示:
class MyClass:
class_attr = 42
def __init__(self, name, age):
self.name = name
self.age = age
self.class_attr = 18 # 定义同名的实例属性
my_obj = MyClass("Alice", 18)
print(my_obj.class_attr) # 输出 18
print(MyClass.class_attr) # 输出 42
print(my_obj.__class__.class_attr) # 输出 42