在不同的源文件中定义类函数?



是否可以(保留所有类功能(将类函数写入单独的文件中?

下面是一个示例:

TestClass.py:

class MyClass():
def __init__(self, param1=1, param2=2, param3=3):
self.param1, self.param2, self.param3 =param1, param2, param3,
def ClassFun1(self, param1=2):
return param1**2/self.param2

TestClass2.py:

def ClassFun2(self, param1=3):
return param1*3/self.param2

接下来,按照这个答案,我编译两个文件(我懒得使用 import(,创建一个类变量并尝试使用ClassFun2

x=MyClass()
x.myMethod=ClassFun2
x.myMethod(2)

结果,我得到一个错误,因为ClassFun2中的self被视为参数,而不是类本身:

AttributeError: 'int' object has no attribute 'param2'

是否可以将类定义拆分为多个源文件?这在C++是可能的,这在团队合作时实际上非常方便。

变量x是类的对象,而不是类本身。您需要做:

x = MyClass
x.myMethod = ClassFun2

请注意,我没有在MyClass之后放()。这将返回类本身,它不返回类的实例。

然后,您需要创建一个实例来执行该方法:

y = MyClass()
y.myMethod(2)

最新更新