Python 类和方法实例化

标签 python class

这是我的代码:

class calculator:

    def addition(x,y):
        added=x+y
        print(added)

    def subtraction(x,y):
        sub=x-y
        print(sub)

    def multiplication(x,y):
        mult=x*y
        print(mult)

    def division(x,y):
        div= x/y
        print(div)

calculator.addition(5,7)

这个程序给了我以下错误:

Traceback (most recent call last):
  File "C:/Python27/docs/defin_class.py", line 21, in <module>
    calculator.addition(6,3)
TypeError: unbound method addition() must be called with calculator instance as first argument (got int instance instead)

我不明白这个错误。请帮忙。

最佳答案

因此,无需过多关注细节,您应该在每个函数上方添加 @staticmethod 装饰器,就像我在下面所做的那样:

class calculator:

    @staticmethod
    def addition(x,y):
        added=x+y
        print(added)

    @staticmethod
    def subtraction(x,y):
        sub=x-y
        print(sub)

    @staticmethod
    def multiplication(x,y):
        mult=x*y
        print(mult)

    @staticmethod
    def division(x,y):
        div= x/y
        print(div)

calculator.addition(5,7)

原因是所有这些方法都是计算器的函数,但它们并不操作计算器类的对象。

要全面了解您应该在 Python 中使用的不同类型的方法,我强烈推荐 this blog post 。祝你好运!

关于Python 类和方法实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37638739/

相关文章:

python - 我如何解释 Python coverage.py 分支覆盖结果?

python - 使用 python 和 arcpy 删除地理数据库中的数据时出现错误

python - 参数化 'SELECT IN (...)' 查询

javascript - jQuery 设置类在设置后不起作用

php - 为什么我可以访问父 php 类中的私有(private)属性?

c++ - 不允许指向不完整类类型的指针

c++ - 如何在类构造函数中生成设定范围内的随机整数(不重复!)?

python - 在 Python 模块中初始化静态列表的最佳方法

objective-c - 如何从另一个类访问变量?

python - PCA 在一个 numpy 3 维数组中的一组空间网格中......特征向量排序?