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()
添加回答
舉報