区分两个函数:
1. def __init__(self)
:
这种形式在__init__方法中,只有一个self,指的是实例的本身,但是在方法的类部,包含两个属性:name、year。它允许定义一个空的结构,当新数据来时,可以直接添加。实例化时,需要实例化之后,再进行赋值。
class Student_Grade:
def __init__(self): # 包含两个属性name,grade
self.name = None
self.grade = None
def print_grade(self):
print("%s grade is %s" % (self.name,self.grade))
s1 = Student() # 创建对象s1,实例化后在赋值
s1.name = "Tom"
s1.grade = 8
s2 = Student() # 创建对象s2
s2.name = "Jerry"
s2.grade = 7
s1.print_grade()
s2.print_grade()
2.def __init__(self, 参数1,参数2,···,参数n)
:
这种形式在定义方法时,就直接给定了两个参数name和grade,且属性值不允许为空。实例化时,直接传入参数。
class Student_Grade:
def __init__(self, name, grade):
self.name = name
self.grade = grade
def print_grade(self):
print("%s grade is %s" % (self.name,self.grade))
s1 = Student("Tom", 8) # 创建对象s1,实例化直接传入参数
s2 = Student("Jerry", 7) # 创建对象s2
s1.print_grade()
s2.print_grade()
参考博客:python类中初始化形式:def init(self)和def init(self, 参数1,参数2,···,参数n)区别