[英]How to get all the local variables defined inside the function in python?
[英]How to give values for local variables inside the function Python?
我有以下功能:
def ex(filter, key, user):
login = user
secret = key
f1 = filter
"..." #many other comands
user = "some text"
key = "some numbers"
filter = "2017/10"
要应用此功能,我写道:
user = "some text"
key = "some numbers"
ex("2010/10",key,user)
此功能可以正常工作 。 我的问题是如何使局部变量取自全局变量的值? 因此,我希望能够通过编写以下代码来应用我的代码:
user = "some text"
key = "some numbers"
ex("2017/10")
有什么建议么?
更新资料
根据@v Sugumar编写代码后。 从shell
调用函数
>>> import expens as e
>>> user = "XXX"
>>> key = "111"
>>> e.exp("08/2017")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\ad\Anaconda4\lib\expens.py", line 29, in exp
userid = user
NameError: name 'user' is not defined
>>>
有几种方法可以做到:
user = "some text"
key = "some numbers"
def ex(filter):
login = user
secret = key
user = "some text"
key = "some numbers"
def ex(filter, key="some numbers", user="some text"): # static defaults
def ex(filter, key=key, user=user): # defaults picked from global variables
user
和key
的部分功能。 from functools import partial
ex_with_user_and_key = partial(ex, key="some numbers", user="some text")
ex_with_user_and_key("2017/10")
只需创建函数def ex(filter):在定义用户和键并在函数中使用变量之前。.如果在函数内部未找到变量,则将在封闭范围内,然后在全局范围内搜索,然后在内置函数中,如果您不想更改函数内部的全局变量,则在使用变量名之前无需在变量名前使用global
#file listdir.py
def ex(filter):
login = user
secret = key
f1 = filter
print(login)
print(secret)
user = "some text"
key = "some numbers"
ex("2017/10")
更新
#file listdir.py
def ex(filter,user,key):
login = user
secret = key
f1 = filter
print(login)
print(secret)
更新2
好,然后定义变量
#file listdir.py
def ex(filter):
login = user
secret = key
f1 = filter
print(login)
print(secret)
def ex(filter):
如果在局部范围内找不到该函数,该函数将自动提取全局变量(由于Ashwini指出您不需要使用global
)。 因此,您可以将函数定义为:
def ex(filter):
login = user
secret = key
f1 = filter
"..." #many other comands
然后在调用它时,只需传入filter
,就会从全局范围中提取user
和key
。 因此可以致电:
ex("2017/10")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.