📅  最后修改于: 2023-12-03 14:46:41.135000             🧑  作者: Mango
在Python中,构造函数是一种特殊的函数,它在对象被创建时自动调用。通常用来初始化对象的各种属性。
为了创建对象,我们需要先定义一个类。类是一个模板,用来描述对象的属性和方法。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Alice", 25)
在上面的代码中,我们定义了一个名为Person
的类,它有两个属性name
和age
。__init__
是Python中的构造函数,它接收两个参数name
和age
。在构造函数中,我们给对象的属性name
和age
赋初始值。最后,我们使用Person
类创建了一个对象p1
,并传入了两个参数。
当我们创建对象后,构造函数会自动被调用,并将参数传给它。这意味着在对象被创建时,它的属性已经被初始化了。
我们注意到,在构造函数中,除了前面的参数name
和age
之外,还有一个名为self
的参数。self
代表的是类的实例对象,也就是被创建的对象本身。在构造函数中,我们通过self
来操作对象的属性和方法。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello, my name is " + self.name + " and I am " + str(self.age) + " years old.")
p1 = Person("Alice", 25)
p1.say_hello() # Output: Hello, my name is Alice and I am 25 years old.
在上面的代码中,我们定义了一个say_hello
方法,它使用self.name
和self.age
访问对象的属性,并输出一句问候语。然后,我们在创建了一个对象p1
之后,调用了这个方法。
在Python中,子类可以继承父类的属性和方法。当子类的构造函数被调用时,可以用super()
来调用父类的构造函数。
class Student(Person):
def __init__(self, name, age, major):
super().__init__(name, age)
self.major = major
def say_hello(self):
print("Hello, my name is " + self.name + " and I am " + str(self.age) + " years old. My major is " + self.major + ".")
s1 = Student("Bob", 20, "Computer Science")
s1.say_hello() # Output: Hello, my name is Bob and I am 20 years old. My major is Computer Science.
在上面的代码中,我们定义了一个名为Student
的子类,它继承了Person
类。子类的构造函数需要传入三个参数name
、age
和major
。在构造函数中,我们调用了父类的构造函数,然后再给子类新增了一个属性major
。最后,我们定义了一个say_hello
方法,输出一句问候语,并包含major
属性。创建对象p1
之后,调用了这个方法。
构造函数是Python中重要的概念之一,它用来初始化对象的属性。在构造函数中使用self
参数可以轻松操作对象的属性和方法。在子类中,可以使用super()
调用父类的构造函数。