这涉及到变量的生命周期问题,一般的,在函数里面声明的变量在函数外是不起作用的。
创新互联公司是一家专注于成都做网站、网站设计与策划设计,凤冈网站建设哪家好?创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:凤冈等地区。凤冈做网站价格咨询:13518219792
一个比较简单的解决办法是你在函数外就先声明这个变量,声明成全局变量。然后在函数里面进行操作和赋值。
最后就能在函数外获取变量的值了。例如:
x = 0
def a():
x = 2
if __name__ == '__main__':
a()
print x
最终x打印出来的结果就是2
python实现跨文件全局变量的方法
在使用Python编写的应用的过程中,有时候会遇到多个文件之间传递同一个全局变量的情况。本文就此给出了如下的解决方法供大家参考。
文件1:globalvar.py
#!/usr/bin/env python2.7
class GlobalVar:
db_handle = None
mq_client = None
def set_db_handle(db):
GlobalVar.db_handle = db
def get_db_handle():
return GlobalVar.db_handle
def set_mq_client(mq_cli):
GlobalVar.mq_client = mq_cli
def get_mq_client():
return GlobalVar.mq_client
文件2:set.py
import globalvar as GlobalVar
def set():
GlobalVar.set_mq_client(10)
print "------set mq_client in set.py------mq_client: " + str(GlobalVar.get_mq_client())
文件3:get.py
#!/usr/bin/env python2.7
import globalvar as GlobalVar
def get():
print "------get mq_client in get.py------mq_client: " + str(GlobalVar.get_mq_client())
文件4:main.py
#!/usr/bin/env python2.7
import set
import get
set.set()
get.get()
其中globalvar.py中定义了两个全局变量,在set.py中的set函数中对其进行赋值,在get.py文件中的get函数取值并打印。main.py函数作为应用入口,调用set和get。
这样就可以看到一个完整的应用中,全局变量的跨文件使用。
有什么办法省略掉那些被调用函数的参数?
也就是func2只想在调用是传入一个c。
那么func2在定义的时候必须喂饱func1,也就是func2在调用 func1时,当前作用域中要有a,b。
明显图中是没有做到的,没有实际ab
b可以试试在这个文件中直接定义 ab两个变量,那么在第三个文件中引入 func2,就可以直接传c给func2了,因为ab已经在上一步被配置好。
这不完全是global的问题,运行代码时python会先运行一遍def外的内容
可以说你在点击确定时,python就需要用到img,
有三种解决方法
是把25行放进def内
在25行前面定义一个img对象(这种难度较高)
给25行添加判断 if 'img' in dir(): # 意思是如果img这个变量存在就调用25行
记得采纳 (^_−)☆
#coding:
utf-8
i
=
#定义一个全局变量i
def
a():
'''
打印出i的值
'''
i
def
b():
global
i
a()
#调用a方法
i
#打印i
i
=
1000
#重新赋值i
i
#打印i
a()
#再次调用a方式
b()
append是list自带的一个方法,作用就是给list尾部加上一个元素。
list内部靠顺序表实现,append会在顺序表尾部加上一个元素并将顺序表的长度+1。