为什么python def 函数不能被调用?

q=3
def my_del(x):
if x is str or int or float or bool or complex:
del x
my_del(q)
print(q) #q还是输出3,没有被删除ac
为什么定义的函数不能生效呢?

牧羊人nacy
浏览 381回答 2
2回答

catspeake

你的del删除的是函数的形参x,删除的不是作为实参的全局变量q,更不是q指向的int型对象3。弄清楚形参和实参的区别,以及del删除的究竟是变量名还是对象。

哔哔one

q = 3 表示一个整数对应被创建并且赋值给了变量q,引用数是1,然后调用了my_del函数,引用数变成2,在函数中做了del操作,仅减少了函数引用这个引用数,原先的引用还在,所以print的时候还可以输出。以上,我个人理解。
打开App,查看更多内容
随时随地看视频慕课网APP