Python中的类是一种面向对象的编程结构,类定义了一个对象的属性和方法。构造函数是类中一个特殊的函数,它在实例化类的对象时调用,用来初始化对象的属性。Python中构造函数的名称是__init__
,使用时必须加上该名称。
在类中定义构造函数的语法如下:
class MyClass:
def __init__(self, arg1, arg2, ...):
# 这里对对象属性进行初始化
__init__
函数的第一个参数必须是self,它表示创建的对象实例本身。其余的参数是用户定义的对象属性。这些属性在对象被创建时由构造函数进行初始化。
下面以两个例子说明Python类的构造函数的使用。
例子一
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Tom", 25)
print("Name:", p1.name)
print("Age:", p1.age)
在这个例子中,我们创建了一个Person
类,该类有两个实例化变量name
和age
。在构造函数中传入两个参数name
和age
,并将它们分别赋值给对象属性self.name
和self.age
。
创建一个对象实例p1
,并传入两个参数“Tom”和25,该实例会自动调用Person
类的构造函数来初始化其属性。
最后输出对象的属性值。
例子二
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
car = Car("audi", "a4", 2019)
print(car.get_descriptive_name())
这个例子中,我们创建了一个Car
类。构造函数__init__
不仅初始化了make
、model
、year
三个属性,还初始化了一个属性odometer_reading
。
调用get_descriptive_name
方法返回为该车辆生成的描述性名称字符串,该字符串的值类似于“2019 Audi A4”。
创建对象实例car
,传入三个参数,实例属性会被构造函数进行初始化。最后再调用get_descriptive_name
方法。