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

例如:#A.pyClassa()deffun()tmp='123'#B.pyClassb()deffun1()printtmp-----这一步如何实现?本人菜鸟,希望大神... 例如:
#A.py
Class a()
def fun()
tmp='123'
#B.py
Class b()
def fun1()

print tmp ----- 这一步如何实现?
本人菜鸟,希望大神不吝赐教。。。
其中fun 和 fun1都是类的方法,不是函数。在之前我省略了,没有写上“def __init__”这个构造函数。
展开
 我来答
againinput4
推荐于2017-10-05 · TA获得超过2407个赞
知道大有可为答主
回答量:1446
采纳率:70%
帮助的人:637万
展开全部
没法实现。
原因:
你的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中其他函数中调用的。
唉。。我真是悲剧。
追答
函数内部的局部变量,就是无法被外界调用的。
当然,将所要保存的值,通过全局变量的方式保存起来。也是可以实现所需要获得的值的。
然后外界就可以通过全局变量获得该值了。
波尽天下
2013-03-20 · TA获得超过834个赞
知道小有建树答主
回答量:202
采纳率:66%
帮助的人:225万
展开全部
你的原始代码有若干语法错误,现已帮你修正并做好注释,参考下列代码:

# -*- 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环境测试通过
希望对你有所帮助~
追问
您的回答也很精彩。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiafeimaozcb
推荐于2017-09-02 · TA获得超过2万个赞
知道大有可为答主
回答量:9859
采纳率:99%
帮助的人:896万
展开全部

(1)方法1

import 模块
模块.变量名

(2)方法2

from 模块 import 变量名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风灬飏
2013-03-20
知道答主
回答量:23
采纳率:100%
帮助的人:13.6万
展开全部
import xx 然后就可以通过xx.yy来使用,如xx.yy='abc' 进行修改
更多追问追答
追问
那我可以这样?
import A
print A.tmp
貌似不行吧
追答
#A.py
tmp = 'dsadsd'

#B.py

from A import tmp
print tmp

这样吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式