Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,我们如何可能使用方法作为变量?_Python_Arrays_Python 3.x_List_Methods - Fatal编程技术网

在Python中,我们如何可能使用方法作为变量?

在Python中,我们如何可能使用方法作为变量?,python,arrays,python-3.x,list,methods,Python,Arrays,Python 3.x,List,Methods,“sum”是如何在上述代码中用作变量的方法?Python有一个名称空间层次结构,它将用于解析名称。在函数中是局部变量、全局变量,然后是内置变量。在模块级,它只是全局的,然后是内置的。您可以为全局变量指定任何合法变量名,包括内置变量中的任何名称。globals中的“sum”隐藏了内置名称。根据内置函数中的名称测试每个全局变量赋值会很昂贵,而且也不可取-目前,如果愿意,您可以有目的地重写任何内置函数 当脚本运行时,“sum”不在globals中,因此它解析为内置函数 n=int(input(

“sum”是如何在上述代码中用作变量的方法?

Python有一个名称空间层次结构,它将用于解析名称。在函数中是局部变量、全局变量,然后是内置变量。在模块级,它只是全局的,然后是内置的。您可以为全局变量指定任何合法变量名,包括内置变量中的任何名称。globals中的“sum”隐藏了内置名称。根据
内置函数
中的名称测试每个全局变量赋值会很昂贵,而且也不可取-目前,如果愿意,您可以有目的地重写任何内置函数

当脚本运行时,“sum”不在globals中,因此它解析为内置函数

    n=int(input())
    a=list(map(int,input().split()))
    sum=a[0]
>>> "sum" in globals()
False
>>> sum
<built-in function sum>
>>> id(sum)
139891628989872
将其从globals中删除,您将再次获得先前隐藏的函数

>>> sum = "foo"
>>> sum
'foo'
>>> "sum" in globals()
True
>>del sum
>>>总数
>>>id(总和)
139891628989872

Python有一个名称空间层次结构,它将使用它来解析名称。在函数中是局部变量、全局变量,然后是内置变量。在模块级,它只是全局的,然后是内置的。您可以为全局变量指定任何合法变量名,包括内置变量中的任何名称。globals中的“sum”隐藏了内置名称。根据
内置函数
中的名称测试每个全局变量赋值会很昂贵,而且也不可取-目前,如果愿意,您可以有目的地重写任何内置函数

当脚本运行时,“sum”不在globals中,因此它解析为内置函数

    n=int(input())
    a=list(map(int,input().split()))
    sum=a[0]
>>> "sum" in globals()
False
>>> sum
<built-in function sum>
>>> id(sum)
139891628989872
将其从globals中删除,您将再次获得先前隐藏的函数

>>> sum = "foo"
>>> sum
'foo'
>>> "sum" in globals()
True
>>del sum
>>>总数
>>>id(总和)
139891628989872

您正在覆盖
sum
的定义。如果随后尝试将其用作函数,例如
sum(a)
,则会出现错误:“TypeError:“int”对象不可调用”您正在覆盖
sum
的定义。如果随后尝试将其用作函数,例如,
sum(a)
,则会出现错误:“TypeError:'int'对象不可调用”