Aly*_*Aly 5 python constructor
我班上有两个构造函数:
def __init__(self):
self(8)
def __init__(self, size):
self.buffer = [1] * size
Run Code Online (Sandbox Code Playgroud)
我希望第一个构造函数使用默认大小调用第二个构造函数.这在python中是否可以实现?
您无法在Python中定义多个初始值设定项(如注释中所指出的,__init__ 实际上不是构造函数),但您可以定义默认值,例如:
def __init__(self, size=8):
self.buffer = [1] * size
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,默认情况下会创建一个大小为8的缓冲区,但如果指定了size参数,则会使用该参数.
例如,假设初始化器位于一个名为的类中Example.此调用将使用大小为8的缓冲区(默认值)创建类的新实例:
e = Example()
Run Code Online (Sandbox Code Playgroud)
而此调用将使用大小为10的缓冲区创建一个新实例:
e = Example(10)
Run Code Online (Sandbox Code Playgroud)
或者,您也可以像这样调用构造函数:
e = Example(size=10)
Run Code Online (Sandbox Code Playgroud)
不,你不能在Python中重载方法.在这种情况下,您可以使用size参数的默认值:
def __init__(self, size=8):
self.buffer = [1] * size
Run Code Online (Sandbox Code Playgroud)