赞
赏
Python 中的实例属性是指定义在 类 的方法的内部的属性,Python 中的实例属性可以有 0 个或者多个。
class People:
money = 10000
def __init__(self, name, age):
self.nm = name
self.ag = age
pass
我们定义了一个 People 类,People 类的 money 属性是定义在 函数 外部的,因此 money 属性属于类属性。
其中,__init__
函数的 参数 name 和 age,并不是实例属性,这只是 __init__
函数中的局部 变量,我们必须在函数内部将这两个参数赋值给 self.
的形式,这时类中才有了实例属性。
因此,类 Person 中的实例属性只有 nm 和 ag,而不是 name 和 age。
Python 的实例属性只能通过 “实例.属性” 的方法来调用。
p.nm
参数 | 描述 |
---|---|
p | 类的实例,也叫对象。 |
nm | 类实例的属性。 |
通过 “实例.属性” 的方法,访问实例属性。
通过实例访问实例属性
print("嗨客网(www.haicoder.net)")
class Student:
score = 99.95
def __init__(self, name, age):
print("Call init")
stu = Student("HaiCoder", 18)
print("Name =", stu.name, "Age =", stu.age, "Score =", stu.score)
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,为该类添加了一个类属性 score
,和一个 __init__
方法,其中 __init__
方法中有三个参数。
接着,我们创建了一个 Student 类的实例,并通过实例来调用实例属性,此时程序报错,因为此时的 name 和 age 并不是实例属性,只是局部变量。
通过实例访问实例属性
print("嗨客网(www.haicoder.net)")
class Student:
score = 99.95
def __init__(self, name, age):
self.nm = name
self.ag = age
stu = Student("HaiCoder", 18)
print("Name =", stu.nm, "Age =", stu.ag, "Score =", stu.score)
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,为该类添加了一个类属性 score
,和一个 __init__
方法,其中 __init__
方法中有三个参数。
接着,我们在 __init__
方法里面,通过 “self.” 的形式,将 self 函数的参数 name 和 age 分别赋值给类 Student 的实例属性 nm 和 age,此时类 Student 中就有了两个实例属性,即 nm 和 ag。
接着,我们创建了一个 Student 类的实例,并通过实例来调用实例属性和类属性。
Python 中的实例属性是指定义在类的方法的内部的属性,Python 中的实例属性可以有 0 个或者多个。Python 实例属性创建语法:
class People:
money = 10000
def __init__(self, name, age):
self.nm = name
self.ag = age
pass
Python 的实例属性只能通过 “实例.属性” 的方法来调用。