一文理解 Python 中的实例变量
Python 中的实例变量是什么?
实例变量是属于类的一个 实例 的变量。每个从类创建的对象都有自己独立的这些变量副本。与类变量不同,类变量在所有实例之间共享,实例变量为每个对象
如何在 Python 中定义实例变量
要定义一个实例变量,你需要在类中使用 self 关键字。
class Student:
def __init__(self, name, age):
self.name = name # Instance variable
self.age = age # Instance variable
# Creating instances
student1 = Student("Harish", 20)
student2 = Student("Chandru", 22)
print(student1.name) # Output: Harish
print(student2.age) # Output: 22
在这个例子中,name 和 age 是实例变量。每个 Student 对象都有这些变量的自己的值。
实例变量存储在哪里?
实例变量存储在对象的 __dict__ 属性中。您可以使用以下方法检查:
print(student1.__dict__)
这将输出:
{'name': 'Harish', 'age': 20}
每个实例都有自己的 __dict__,其中只存储其特定的数据。
实例变量和类变量之间的区别
特性 实例变量 类变量 定义在 __init__() 方法中 定义在 __init__() 方法外部 属于各个实例 属于整个类 修改影响 仅一个实例 所有实例
类变量的示例:
class Course:
category = "Programming" # Class variable
def __init__(self, name):
self.name = name # Instance variable
course1 = Course("Python Basics")
course2 = Course("Java Basics")
print(course1.category) # Output: Programming
print(course2.category) # Output: Programming
修改实例变量
您可以像这样修改特定对象的实例变量:
student1.age = 21 # Changing Harish's age
print(student1.age) # Output: 21
这种更改不会影响其他实例,例如 student2。
要了解更多关于访问和修改实例变量的信息,请访问 PYnative。
实例变量常见问题
1. 如果我访问一个不存在的实例变量会发生什么?
Python 会抛出一个 AttributeError:
print(student1.grade) # AttributeError: 'Student' object has no attribute 'grade'
2. 实例变量可以在__init__外创建吗?
可以!你可以稍后添加它们:
student1.grade = "A"
print(student1.grade) # Output: A
3. 如何删除一个实例变量?
使用 del:
del student1.age
print(student1.age) # Raises AttributeError