Python 中怎样访问类变量和实例变量的值
·
在 Python 中,类变量和实例变量的访问方式有所不同,下面分别具体说明:
1. 类变量
类变量是属于类本身的变量,被所有实例共享。可以通过类名或实例对象来访问。
python
运行
class MyClass:
# 类变量
class_var = "我是类变量"
# 通过类名访问
print(MyClass.class_var) # 输出: 我是类变量
# 创建实例
obj = MyClass()
# 通过实例对象访问
print(obj.class_var) # 输出: 我是类变量
2. 实例变量
实例变量是属于具体实例的变量,每个实例的实例变量可能不同。只能通过实例对象来访问。
python
运行
class MyClass:
def __init__(self):
# 实例变量(在 __init__ 方法中定义)
self.instance_var = "我是实例变量"
# 创建实例
obj = MyClass()
# 通过实例对象访问
print(obj.instance_var) # 输出: 我是实例变量
3. 混合使用示例
python
运行
class Person:
# 类变量:所有 Person 实例共享
species = "人类"
def __init__(self, name):
# 实例变量:每个实例独有的属性
self.name = name # name 是实例变量
# 访问类变量
print(Person.species) # 输出: 人类
# 创建实例
p1 = Person("张三")
p2 = Person("李四")
# 访问实例变量
print(p1.name) # 输出: 张三
print(p2.name) # 输出: 李四
# 通过实例访问类变量
print(p1.species) # 输出: 人类
print(p2.species) # 输出: 人类
注意点:
- 尽量通过类名访问类变量,这样更清晰地表明这是类级别的变量。
- 如果通过实例修改类变量,实际上会给该实例创建一个同名的实例变量,不会影响其他实例和类本身:
python
运行
p1.species = "外星人" # 给 p1 创建了实例变量 species print(p1.species) # 输出: 外星人(实例变量) print(Person.species) # 输出: 人类(类变量未变) print(p2.species) # 输出: 人类(其他实例仍访问类变量)
更多推荐
所有评论(0)