Python中类的初始化形式def __init__(self)和def __init__(self,args)

一、形式一:def init(self)

这种形式在__init__方法中,只有一个self,指的是实例的本身。它允许定义一个空的类对象,当新数据来时,可以直接添加。实例化时,需要实例化之后,再进行赋值。

# -*- coding:utf-8 -*-
class Student(object):
    def __init__(self):
        self.name = None
        self.grade = None

    def print_grade(self):
        print(f"{
      
      self.name}'s grade is {
      
      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()

在这里插入图片描述
如上述代码,在对类Student进行实例化时,因为__init__方法只有一个参数self,因此不需要传入其他参数。当需要打印print_grade方法的结果时,只需要对name和grade进行赋值即可。

二、形式二:def init(self,args)

这种形式在__init__方法中,除了有参数self,还有其他的参数args。
这种形式在定义方法时,属性值不允许为空。实例化时,直接传入参数。

# -*- coding:utf-8 -*-
class Student(object):
    def __init__(self, name, grade):
        self.name = name
        self.grade = grade

    def print_grade(self):
        print(f"{
      
      self.name}'s grade is {
      
      self.grade}")


s1 = Student("Tom", 8)   # 创建对象s1
s2 = Student("Jerry", 7)  # 创建对象s2

s1.print_grade()
s2.print_grade()

在这里插入图片描述
如上述代码,在对类Student进行实例化时,因为__init__方法有参数self,name和grade,因此在实例化对象时一定要传入name和grade参数。当需要打印print_grade方法的结果时,直接调用即可。

猜你喜欢

转载自blog.csdn.net/weixin_56197703/article/details/126819679
今日推荐