带有Python示例的构造函数

构造是使用对象创建期间初始化实例变量的特殊方法(函数)。

Python中的构造函数类型

  1. 默认构造函数/非参数化构造函数

  2. 参数化构造函数

如何创建构造函数?

在python中,__init__方法会刺激该类的构造函数。

当我们实例化该类时,我们调用此方法。通常在初始化类属性时使用。一个类必须具有构造函数,即使它们依赖于默认构造函数也是如此。

定义构造函数的语法:

虽然声明构造一个重要的事情是永远的构造函数初始化已经和初始化之前和之后,就像有两个下划线(__)字:__init__

我们使用def Keyword声明构造函数

语法:

    def  __init__(self):
        #现在关于构造函数

在这里,__init__用于类的构造函数。self参数引用对象的实例(例如,在C ++中)。

示例

class Addition:
    # 定义一个构造函数
    def __init__(self):
        # 在self.xyz的帮助下
		# 我们正在初始化实例变量
        self.num1=1000
        self.num2=2000
        self.num3=3000

    def result(self):
        self.num=self.num1+self.num2+self.num3
        print('Output:',self.num)


# 在这里,我们创建要调用的对象 
# 调用构造函数
Sum = Addition()

# 调用实例方法 
# 使用对象求和
Sum.result()

输出结果

Output: 6000

1)Python默认构造函数/未参数化

在上面的示例中,我们使用默认构造函数为变量num1,num2和num3分配默认值。

有关默认/非参数化构造函数的更多信息...

如果程序中没有构造函数,则无法创建对象。这就是为什么当我们不在程序python中声明具有内置功能的构造函数时,它会为我们执行此操作的原因。

例如:在下面给出的程序中,我们没有构造函数,但仍然可以创建对象。这是由于python的默认属性,它在编译期间会隐式执行该操作。

默认构造函数如下所示:

    def __init__(self):
        # 没有身体,什么也没做。

示例

class Addition:
    num1=1000
    num2=2000
    num3=3000

# 这里,因为我们没有构造函数 
# 因此它使用默认值。
    def result(self):
        self.num=self.num1+self.num2+self.num3
        print('Output:',self.num)


# 在这里,我们创建要调用的对象 
# 调用构造函数
Sum = Addition()

# 调用实例方法 
# 使用对象求和
Sum.result()

输出结果

Output: 6000

2)Python参数化构造函数

当我们以在对象创建过程中接受参数的方式声明构造函数时,这些类型的构造函数称为Parameterized Constructors

这用于初始化对象的实例成员。

示例

class Student:
    # 定义具有参数的参数化构造函数
    def __init__(self,name,ids,college):
        print("This is a parmeterized costructor in python:")
        self.name=name
        self.ids=ids
        self.college=college
        
    def Display_Details(self):
        print("Student Details:")
        print("Student Name:",self.name)
        print("Student ids:",self.ids)
        print("Student college:",self.college)


# 在这里,我们创建要调用的对象 
# 调用构造函数
student=Student("Yash",2023,"Kcc")

# 调用实例方法 
# 使用对象学生
student.Display_Details()

输出结果

This is a parmeterized costructor in python:
Student Details:
Student Name: Yash
Student ids: 2023
Student college: Kcc