3 回答
TA贡献1776条经验 获得超12个赞
如果你想将类代码的某些部分外部化到外部函数,最好将它们编写为纯函数,并将属性访问(甚至更多的属性更新)保留在类代码本身中 - 这使得代码更容易测试,阅读和维护。在你的情况下,这看起来像这样:
from calculate_function import function
class Data():
def __init__(self):
self.y = -2
self.x = 1
self.z, self.result = function(self.x)
calculate_function.py:
def function(x):
z = 2
result = z + x
return z, result
这里的要点是1/您可以立即发现属性的创建,2/您可以在没有实例的情况下进行测试。zresultfunction()Data
我需要将类方法拆分为多个文件。
这通常意味着你的班级有太多的责任。它的某些部分可以委托给纯函数,如上所示。其他一些需要访问类属性的公共子集的部分可以委托给其他较小的专用类 - 但最好使用组合/委派而不是继承(当然取决于具体的用例)。
TA贡献1863条经验 获得超2个赞
你不需要在函数内部传递self为什么不这样做:
class Data():
def __init__(self):
self.y = -2
self.x = 1
self.function()
def function(self):
self.z = 2
self.result = self.z + self.x
是否希望使用另一个 Class 函数或仅使用独立函数?
TA贡献1884条经验 获得超4个赞
下面是使用类继承的解决方案:
-- function1.py --
class FunctionClass1():
def function1(self):
self.result = self.x + self.y
-- function2.py --
class FunctionClass2():
def function2(self):
self.result = self.result + self.z
-- data.py --
from function1 import FunctionClass1
from function2 import FunctionClass2
class Data(FunctionClass1, FunctionClass2):
def __init__(self):
self.x = 1
self.y = 2
self.z = 3
self.function1()
self.function2()
添加回答
举报