这是我的代码:
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/