You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

调用Python类方法时出现‘missing 1 required positional argument: 'self'’错误,请问我的代码哪里出错了?

问题分析与解决方法

嘿,这个错误我刚学Python的时候也踩过坑!咱们一步步来拆解问题:

错误原因

你定义的calculation实例方法,这类方法的第一个参数self是Python用来自动传递调用该方法的实例对象的。当你直接用Area.calculation()调用类的方法时,Python找不到要传入self的实例,自然就会抛出missing 1 required positional argument: 'self'的错误。

简单说:实例方法是给实例用的,不是给类直接用的~

两种修正方案

方案1:用创建好的实例调用方法(推荐)

你已经创建了实例area = Area(15, 2),直接用这个实例来调用calculation方法就行,Python会自动把area作为self传入:

class Area(object):
    def __init__(self, base, height):
        self.base = base
        self.height = height
    def calculation(self):
        return(self.base * self.height)
area = Area(15, 2)
print(area.calculation())  # 这里改成实例调用

运行这个代码就会输出30,完全正常。

方案2:手动传入实例给类方法(不推荐)

如果非要用类来调用这个方法,那你得手动把创建好的实例作为self参数传进去,写法是这样的:

print(Area.calculation(area))

不过这种写法不符合Python的编码习惯,除非有特殊需求,不然还是用方案1更规范。

内容的提问来源于stack exchange,提问作者The noob coder

火山引擎 最新活动