更新时间:2023-06-02 来源:黑马程序员 浏览量:

Python中的类变量和实例变量是两种不同类型的变量,它们在作用域和访问方式上有所不同。
类变量是定义在类中,但在方法之外的变量。它们被所有类的实例共享,并且可以通过类名或实例来访问。类变量通常用于存储与该类的所有实例相关的共享数据。
实例变量是定义在方法中或构造函数中的变量。每个实例都有自己的一组实例变量,并且它们与该实例的特定属性相关联。实例变量的值可以在每个实例中单独设置和访问。

下面是一个简单的示例代码来演示类变量和实例变量的区别:
class MyClass:
class_var = 0 # 类变量
def __init__(self, instance_var):
self.instance_var = instance_var # 实例变量
# 创建两个实例
obj1 = MyClass(10)
obj2 = MyClass(20)
# 访问类变量
print("Class variable:", MyClass.class_var) # 输出: Class variable: 0
print("Class variable (via instance):", obj1.class_var) # 输出: Class variable (via instance): 0
# 修改类变量
MyClass.class_var = 5
print("Modified class variable (via class):", MyClass.class_var) # 输出: Modified class variable (via class): 5
print("Modified class variable (via instance):", obj2.class_var) # 输出: Modified class variable (via instance): 5
# 访问实例变量
print("Instance variable (obj1):", obj1.instance_var) # 输出: Instance variable (obj1): 10
print("Instance variable (obj2):", obj2.instance_var) # 输出: Instance variable (obj2): 20
# 修改实例变量
obj1.instance_var = 15
print("Modified instance variable (obj1):", obj1.instance_var) # 输出: Modified instance variable (obj1): 15
print("Instance variable (obj2):", obj2.instance_var) # 输出: Instance variable (obj2): 20在上面的示例中,class_var是一个类变量,可以通过类名或实例来访问。instance_var是一个实例变量,每个实例都有自己的副本,并且只能通过实例来访问。修改类变量的值会影响所有实例,但修改实例变量的值只会影响该实例本身。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27