#In simple form def name(name): print(name)name='arjun'name(name) #In this line, what's happening?#Error 'str' object is not callable
1 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
函數和其他對象沒有單獨的命名空間。如果你寫
def name1(name2):
print(name2)
您創建類型的實例function,然后將該實例分配給名稱name1。(def語句只是一種非常奇特的賦值語句。)
參數名是局部變量,屬于函數定義的范圍,而不是函數定義的范圍。這意味著您可以重復使用該名稱,但不建議這樣做,因為它可能會造成混淆。
belongs to the scope in which the function is defined
|
| +--- belongs to the scope inside the function
| |
v v
def name(name):
print(name)
然而,下面的任務
name = 'arjun'
與函數定義在同一作用域內,因此 thisname引用了一個str對象,而不是function它過去引用的對象。
添加回答
舉報
0/150
提交
取消