python如何引用其他模块中类的方法中的变量?

例如:
#A.py
Class a()
def fun()
tmp='123'
#B.py
Class b()
def fun1()

print tmp ----- 这一步如何实现?
本人菜鸟,希望大神不吝赐教。。。
其中fun 和 fun1都是类的方法,不是函数。在之前我省略了,没有写上“def __init__”这个构造函数。

没法实现。
原因:
你的tmp,只是class a中的一个函数fun内的临时变量
所以无法直接被外部调用。
并且只有fun函数执行时才存在,函数结束时,就不存在了。

关于变量的作用范围,你可以参考:
【整理】Python中变量的作用域(variable scope)

想要可以被调用,可以试试:
改为:

#A.py
Class a()
tmp='123'
def fun()
。。。。。。

然后再去:

import A
print A.tmp

注意:
此时,tmp就是class a中的全局变量了。追问

大神。
我之前就怀疑是不是无法实现了。其实源code中的tmp是个变量,并不是'123',所以更不可能实现了。
不过在tmp之前定义为globa tmp,也能够在A.py中其他函数中调用的。
唉。。我真是悲剧。

追答

函数内部的局部变量,就是无法被外界调用的。
当然,将所要保存的值,通过全局变量的方式保存起来。也是可以实现所需要获得的值的。
然后外界就可以通过全局变量获得该值了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-20
你的原始代码有若干语法错误,现已帮你修正并做好注释,参考下列代码:

# -*- coding: cp936 -*-
#A.py
class a(): #后面要有冒号
tmp='123' #直接在a类里定义tmp变量,不用写方法

# -*- coding: cp936 -*-
#B.py
import A #导入A模块
class b(): #后面要有冒号
def fun1(self): #类方法要有一个默认self参数
print A.a.tmp #输出A模块中a类的tmp值
tb=b() #需要把b类实例化,才可以使用里面的fun1方法
tb.fun1() #直接输出tmp值
A.a.tmp='321' #修改tmp的值
tb.fun1() #看到tmp值已被修改

input('完成,按任意键退出')

以上代码在python2.6环境测试通过
希望对你有所帮助~追问

您的回答也很精彩。。

第2个回答  推荐于2017-09-02

(1)方法1

import 模块
模块.变量名

(2)方法2

from 模块 import 变量名

第3个回答  2013-03-20
import xx 然后就可以通过xx.yy来使用,如xx.yy='abc' 进行修改追问

那我可以这样?
import A
print A.tmp
貌似不行吧

追答

#A.py
tmp = 'dsadsd'

#B.py

from A import tmp
print tmp

这样吧

追问

谢谢。。