0
我目前有兩個調用類,像這樣。從類函數調用返回對象
first_partition = Partition(samplename='Sample1', nS=5)
second_partition = Partition(samplename='Sample2', nS=6, batchname = 'Batch1', nB=4).
由於分區類需要在參數個數可變,在我的初始化,我有:
class Partition:
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
我想是有first_partition和second_partition返回分區對象的實例有兩個實例變量 - k和n - 取決於我調用的輸入。
我試圖做一個單獨的類方法:
def pobject(self):
nargin = len(self.__dict__)
# Return default object if no arguments
if nargin == 0:
self.n = 3
self.k = 0
return self.n, self.j
else if nargin == 2:
self.n = 0
self.k = self.nS + 1
return self.n, self.j
但返回k和n,我必須做的:
first_partition = Partition(samplename='Sample1', nS=5)
print(first_partition.pobject())
我要的是第一線返回的東西,當我打電話
first_partition = Partition(samplename='Sample1', nS=5)
我知道回不了任何東西,所以我想def __new__
而不是def pobject,但它不起作用,並給我一個AtrributeError
。
如果你只是想'k'和'n',爲什麼這個課甚至是一個班? – user2357112
或者如果你想要實例,爲什麼不在'__init__'中設置'k'和'n'屬性? – user2357112
你可以在你的類中定義一個自定義的'__call__'方法,然後執行:'print Partition(samplename ='Sample1',nS = 5)()'__call__'然後可以派發到'pobject'方法 – JacobIRR