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