自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
在创建类后,可以手动创建一个__init__()方法。该方法是一个特殊的方法,类似Java语言中的构造方法。每当创建一个类的新实例时,Python都会自动执行它。__init__()方法必须包含一个self参数,并且必须是第一个参数。self参数是一个指向实例本身的引用,用于访问类中的属性和方法。在方法调用时会自动传递实际参数self,因此当__init__()方法只有一个参数时,在创建类的实例时,就不需要指定实际参数了。
说明:在__init__()方法的名称中,开头和结尾处是两个下划线(中间没有空格),这是一种约定,旨在区分Python默认方法和普通方法。
例如,下面仍然以大雁为例声明一个类,并且创建__init__()方法,代码如下:
class Geese:
'''大雁类'''
def __init__(self): # 构造方法
print("我是大雁类!")
wildGoose = Geese() # 创建大雁类的实例
运行上面的代码,将输出以下内容:
我是大雁类!
从上面的运行结果可以看出,在创建大雁类的实例时,虽然没有为__init__()方法指定参数,但是该方法会自动执行。
常见错误:在为类创建__init__()方法时,在开发环境中运行下面代码:
class Geese:
'''大雁类'''
def __init__(): # 构造方法
print("我是大雁类!")
wildGoose = Geese() # 创建大雁类的实例
将显示如图8所示的异常信息。该错误的解决方法是在第3行代码的括号中添加self。
图8 缺少self参数抛出的异常信息
在__init__()方法中,除了self参数外,还可以自定义一些参数,参数间使用逗号“,”进行分隔。例如,下面的代码将在创建__init__()方法时,再指定3个参数,分别是beak、wing和claw。
class Geese:
'''大雁类'''
def __init__(self,beak,wing,claw): # 构造方法
print("我是大雁类!我有以下特征:")
print(beak) # 输出喙的特征
print(wing) # 输出翅膀的特征
print(claw) # 输出爪子的特征
beak_1 = "喙的基部较高,长度和头部的长度几乎相等" # 喙的特征
wing_1 = "翅膀长而尖" # 翅膀的特征
claw_1 = "爪子是蹼状的" # 爪子的特征
wildGoose = Geese(beak_1,wing_1,claw_1) # 创建大雁类的实例
执行上面的代码,将显示如图9所示的运行结果。
图9 创建__init__()方法时,指定4个参数