我不明白上课是怎么用的.下面的代码在我try 使用该类时给出了一个错误.

class MyStuff:
    def average(a, b, c): # Get the average of three numbers
        result = a + b + c
        result = result / 3
        return result

# Now use the function `average` from the `MyStuff` class
print(MyStuff.average(9, 18, 27))

错误:

File "class.py", line 7, in <module>
    print(MyStuff.average(9, 18, 27))
Type错误: unbound method average() must be called with MyStuff instance as first argument (got int instance instead)

发生了什么?

推荐答案

您可以通过声明一个变量并像调用函数一样调用该类来实例化该类:

x = mystuff()
print x.average(9,18,27)

但是,这与您给我们的代码不兼容.在对给定对象(x)调用类方法时,它总是在调用函数时传递指向该对象的指针作为第一个参数.因此,如果您现在运行代码,您将看到以下错误消息:

TypeError: average() takes exactly 3 arguments (4 given)

要解决这个问题,需要修改average方法的定义,使其包含四个参数.第一个参数是对象引用,其余3个参数将用于3个数字.

Python-3.x相关问答推荐

我在创建Pandas DataFrame时感到困惑

如何从枚举中获取某个值?

正确的本地react 方式-Django身份验证

Pandas 根据条件增加Dataframe列

删除浮点型数据集中每列重复值比例超过一定阈值的列

替换 .txt 文件中的项目列表

torch.stack([t1, t1, t1], dim=1)与torch.hstack([t1, t1, t1])之间有什么区别?

Django在POST到外部URL时如何进行CSRF保护? 更新

从 LeetCode 的 Python 解决方案类中理解关键字 self

attrs 将 list[str] 转换为 list[float]

如何使用`re.findall`从字符串中提取数据

!date 的命令无法从 jupyter notebook 运行

Einsum 对于张量乘法很慢

命名元组内命名元组的 Python 语法

如何编写可 Select 充当常规函数的 asyncio 协程?

如何制作函数Collection

如何在 FastAPI 中的一条路由上捕获任意路径?

当默认 pip 为 pip2 时,升级 pip3 的正确格式是什么?

调用 Python doctest 时如何启用省略号?

Django 教程 unicode 不起作用