小编Yuh*_*ang的帖子

Python:修改函数内的全局列表

首先,我理解我可以使用globalstatement来访问全局变量.但不知何故,我能够修改一个全局列表,global如下所示:

def func1(nums):
    nums = [4,5,6]

nums = [1,2,3]
func1(nums)
print nums # print [1,2,3]

def func2(nums):
    nums[0] = 4
    nums[1] = 5
    nums[2] = 6

nums = [1,2,3]
func2(nums)
print nums # print [4,5,6]
Run Code Online (Sandbox Code Playgroud)

在尝试了func2之后,我意识到如果我指定索引,我总是可以访问函数中的全局列表:

def func3(nums):
    nums[:] = [4,5,6]

nums = [1,2,3]
func3(nums)
print nums # print [4,5,6]
Run Code Online (Sandbox Code Playgroud)

是因为如果在定义之前使用函数变量,Python会自动尝试匹配全局变量吗?

谢谢.

python function global-variables

7
推荐指数
2
解决办法
7049
查看次数

在Python中使用argparse处理无效参数

我argparse用来解析命令行参数,默认情况下,在接收到无效参数时,它会打印帮助消息并退出。当argparse收到无效参数时,是否可以自定义行为?

通常,我想捕获所有无效的参数并对其进行处理。我正在寻找类似的东西:

parser = argparse.ArgumentParser()
# add some arguments here
try:
    parser.parse_args()
except InvalidArgvsError, iae:
    print "handle this invalid argument '{arg}' my way!".format(arg=iae.get_arg())
Run Code Online (Sandbox Code Playgroud)

这样我就可以:

>> python example.py --invalid some_text
handle this invalid argument 'invalid' my way!
Run Code Online (Sandbox Code Playgroud)

python argparse

5
推荐指数
1
解决办法
5019
查看次数

标签 统计

python ×2

argparse ×1

function ×1

global-variables ×1