编辑2:谢谢大家的帮助!编辑:关于添加@staticmethod,它的工作原理。不过,我仍然想知道为什么我在这里得到一个类型错误。从python的类调用函数 - 不同的方式
我刚刚开始OOPS,并且对它完全陌生。我有一个非常基本的问题,我可以从一个类中调用一个函数。 我与代码testClass.py文件:
class MathsOperations:
def __init__ (self, x, y):
self.a = x
self.b = y
def testAddition (self):
return (self.a + self.b)
def testMultiplication (self):
return (self.a * self.b)
我打电话从名为main.py用下面的代码另一个文件这个类:
from testClass import MathsOperations
xyz = MathsOperations(2, 3)
print xyz.testAddition()
这工作没有任何问题。但是,我想以更简单的方式使用这个类。
我现在把下面的代码放在testClass.py文件中。这次我已经放弃了init函数。
class MathsOperations:
def testAddition (x, y):
return x + y
def testMultiplication (a, b):
return a * b
调用此使用;
from testClass import MathsOperations
xyz = MathsOperations()
print xyz.testAddition(2, 3)
这不起作用。有人可以解释情况2中发生了什么错误吗?我如何使用这个课程?
错误我得到的是“类型错误:testAddition()到底需要2个参数(3给出)”
@staticmethod标签也会自动放入自我参数中吗? –
如果你使用@staticmethod你可以使用该类而不首先声明一个变量,例如,在这种情况下,如果你尝试使用MathOperation.testAddtion(2,3),它会给你一个错误“TypeError:unbound method” –
不, staticmethod装饰器不需要自我参数。 –