使用python中另一个类的方法中的变量

时间:2013-05-11 12:13:58

标签: python class variables methods tuples

我的代码是这样的:

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用作元组。帮助

2 个答案:

答案 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]