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

时间:2018-05-25 22:56:06

标签: python class

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

以下是一个例子:

TestClass.py:

SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

TestClass2.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

接下来,在this answer之后,我编译了两个文件(我懒得使用导入),创建一个类变量并尝试使用def ClassFun2(self, param1=3): return param1*3/self.param2

ClassFun2

因此,我收到错误,因为x=MyClass() x.myMethod=ClassFun2 x.myMethod(2) 中的self被视为参数,而不是类本身:

ClassFun2

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

1 个答案:

答案 0 :(得分:2)

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

x = MyClass
x.myMethod = ClassFun2

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

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

y = MyClass()
y.myMethod(2)