方法1:

class A: 
    def __init__(self): 
        self.arr1 = "i am xiaobai"
  
    def print_out(self,x): 
        print x 
class B: 
    def main(self): 
        mya = A()  
        mya.print_out(mya.arr1) 
bn = B()  
bn.main()

 

 

方法2:

Python不用向C++那样考虑问题。如果你的这部分应用真的speed critical的话,用C++重写函数,打包后用Python调用,这本来就是Python的一个特点么。

我在举个做属性的例子,这些东西只要传递了,就不用担心实例化的问题,除非本身就是新生成的.

 

class A(object):             
    def __init__(self,attri = "总得放点什么"):  
        self.__attri = attri 
    def method(self): 
        print("总得做点什么") 
          
class B(object): 
    def __init__(self,attri): 
        self.__attri = attri    # 准备在应用中将A的实例传给此 
    def __str__(self): 
        rep = "class B object"
        return rep 
    def methond(self): 
        print("也做点什么吧") 
    @property
    def attri(self): 
        return self.__attri 
  
class C(object): 
    def __init__(self): 
        pass
    def method(self,inData): 
        # 准备用此方法调用B的属性,在应用中就可能捕获A的实例, 
        # 如果A在B中被实例化了的话 
        temp = inData 
        print(temp) 
        #return temp  #如果需要的话,这样可以将A的实例一直传下去,Python会自动管理内存(指针) 
      
# 应用实例 
a = A() 
b = B(a)          # 将A的实例传给B的属性 
c = C() 
  
c.method(b.attri) # 通过B的属性调用到了A的实例