我的代码是这样的:
class A(object):
def __init__(self, master):
"""Some work here"""
def do_this(self):
self.B = B.do_that()
print self.B[1]
class B(object):
def __init__(self, master):
"""Some work here"""
def do_that(self):
p = (1, 2)
我不能让A类中的方法将self.B用作元组。帮助
答案 0 :(得分:1)
首先,do_that()
不返回任何内容。因此,调用它几乎无能为力。
self.B = B.do_that()
也行不通。您必须首先创建类B
的实例:
mything = B(your_parameters)
mything.do_that()
如果您希望返回某些内容(即元组),则应将do_that()
更改为:
def do_that(self):
return (1, 2)
最后一点,这可以通过继承来实现:
class A(B): # Inherits Class B
def __init__(self,master):
"""Some work here"""
def do_this(self):
print self.do_that()[1] # This is assuming the do_that() function returns that tuple
使用继承方法:
>>> class B:
... def __init__(self, master):
... """Some work here"""
... def do_that(self):
... return (1,2)
...
>>> class A(B):
... def __init__(self, master):
... """Some work here"""
... def do_this(self):
... print self.do_that()[1]
...
>>> mything = A('placeholder')
>>> mything.do_this()
2
答案 1 :(得分:0)
首先,您必须在方法A.do_this()
中将B实例化为A的属性。
以下代码应该可以使用。
def do_this(self):
b = B()
self.B = b.do_that()
print self.B[1]