
实例变量是属于类的实例的变量。从类创建的每个对象都有这些变量的单独副本。与所有实例共享的类变量不同,实例变量为每个对象存储唯一的数据。
可以这样想:如果你和我都注册了一个在线Python课程,我们每个人都有自己的登录凭证。课程(类)是相同的,但我们的用户名(实例变量)是唯一的!
如何在Python中定义实例变量要定义一个实例变量,你可以在类中使用self关键字。让我们看一个简单的例子:
class Student: def __init__(self, name, age): self.name = name # Instance variable self.age = age # Instance variable# Creating instancesstudent1 = Student("Harish", 20)student2 = Student("Chandru", 22)print(student1.name) # Output: Harishprint(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 variablecourse1 = Course("Python Basics")course2 = Course("Java Basics")print(course1.category) # Output: Programmingprint(course2.category) # Output: Programming修改实例变量您可以像这样修改特定对象的实例变量:
student1.age = 21 # Changing Harish's ageprint(student1.age) # Output: 21此更改不会影响其他实例,如student2。
要了解有关访问和修改实例变量的更多信息,请查看PYnative。
关于实例变量的常见问题1.如果我访问一个不存在的实例变量会发生什么?Python将引发PropertyError:
print(student1.grade) # AttributeError: 'Student' object has no attribute 'grade'2.实例变量可以在__init__之外创建吗?是的,我会的您可以稍后添加它们:
student1.grade = "A"print(student1.grade) # Output: A3.如何删除实例变量?使用del:
del student1.ageprint(student1.age) # Raises AttributeError