Python中如何跳过类的前两个参数,仅传入第三个参数?
解决方法
首先注意代码里的笔误:类的构造函数应该是__init__,不是__int__,这个错误会导致实例化时无法正确初始化对象,先修正这个问题。
针对你的需求,有两种常见解决方式:
方式一:修改构造函数,给前两个参数设默认值
修改House类的构造函数,给width和length设置默认值(比如None),这样就可以只传入levels参数:
class House: def __init__(self, width=None, length=None, levels): self.width = width self.length = length self.levels = levels # 直接传入第三个参数,前两个使用默认值 House1 = House(levels=3)
方式二:不修改原类,使用关键字参数指定第三个参数
如果不能修改原类的构造函数,可以通过关键字参数明确指定levels的值,同时给前两个参数传临时占位值(比如None):
# 原类修正笔误后 class House: def __init__(self, width, length, levels): self.width = width self.length = length self.levels = levels # 用关键字参数指定levels,前两个传占位值 House1 = House(None, None, levels=3) # 或者更清晰的写法 House1 = House(width=None, length=None, levels=3)
如果后续获取到width和length的数据,直接给实例的属性赋值即可:
House1.width = 12 House1.length = 15
内容的提问来源于stack exchange,提问作者bigdarkmole
相关产品推荐
相关产品推荐

