1 回答

TA貢獻2039條經(jīng)驗 獲得超8個贊
您只是傳入一個簡單的單個參數(shù)。如果您想復(fù)制屬性,則必須專門尋找這樣的實例并復(fù)制出所需的數(shù)據(jù)。這可以像復(fù)制__dict__映射一樣簡單:
if len(args) == 1 and isinstance(args[0], Optimization_problem):
self.__dict__.update(args[0].__dict__)
return
請注意,這與繼承無關(guān);繼承不會讓你從基類復(fù)制狀態(tài)(數(shù)據(jù)),它讓你能夠重用和擴展功能。
如果您想重用特定實例的屬性,只需存儲對 instance 的引用,一個稱為composition的概念:
class Optimization_method:
def __init__(self, problem):
self.problem = problem
def method1(self,x):
return self.problem.function(x)
如果您希望Optimization_method實例支持與Optimization_problem. 如果您希望能夠引用當(dāng)前類需要實現(xiàn)的另一個實例的狀態(tài)和功能,請使用組合。
添加回答
舉報