python类中初始化形式:def __init__(self)和def __init__(self, 参数1,参数2,,,参数
【摘要】 这两种初始化形式,就类似于C++类中的构造函数。形式1: def_init_(self)class Student_Grade: def __init__(self): # 类似于c++中的默认构造函数 self.name = None self.grade = None def print_grade(self): ...
这两种初始化形式,就类似于C++类中的构造函数。
形式1: def_init_(self)
class Student_Grade:
def __init__(self): # 类似于c++中的默认构造函数
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()
这种形式在__init__方法中,只有一个self,指的是实例的本身,但是在方法的类部,包含两个属性,name, grade。
它允许定义一个空的结构,当新数据来时,可以直接添加。
实例化时,需要实例化之后,再进行赋值。
形式2:def_init_(self, 参数1,参数2,···,参数n)
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()
这种形式在定义方法时,就直接给定了两个参数name和grade,且属性值不允许为空。实例化时,直接传入参数。
总结
1、self是形式参数,当执行s1 = Student(“Tom”, 8)时,self等于s1;当执行s2 = Student(“sunny”, 7)时,self=s2。
2、两种方法的区别在于定义函数时属性赋值是否允许为空和实例化时是否直接传入参数
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)