python编程_容易出现的问题_函数名的重新赋值_print_int
回忆上次内容
- 上次 了解了
关键字列表- keywords list
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_赋值](https://i-blog.csdnimg.cn/img_convert/bdd24cfb0a757111751b053abe5daad0.png)
- 关键字 不能做 标识符
- 除了 关键字(keywords)之外
- 还有啥
不适合做标识符 吗?🤔
三问
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_python_02](https://i-blog.csdnimg.cn/img_convert/27813524cd0fefcb83b1959ba27196ae.png)
- 试试这个
print
print = 1
print
- print 本是 内建的函数
- 重新赋值后
- 成为1了
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_03](https://i-blog.csdnimg.cn/img_convert/4624f08fdc473c5cd264261aa1f9f67c.png)
- 还能输出吗?
尝试输出
print("hello")
- 不能输出了
- 整形数字 不能被调用
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_赋值_04](https://i-blog.csdnimg.cn/img_convert/08a381ef92c4c547c9437a250254d404.png)
- 为啥会这样呢?
错位
- 相当于
- 把整形数字
- 当成 函数来调用了
1("hello")
- 把1 直接当做函数来 调用
- 那哪儿成啊?
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_05](https://i-blog.csdnimg.cn/img_convert/fe7007fdfc006c81f6e48a412cdbb0c9.png)
- 除了
函数名
- 还有啥 最好别当 变量名 吗?
常见错误
- int 是 整数类
- 可以完成 类型转化
b = int("6")
c = int(7.1)
- int类型
- 能用来转化变量类型
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_赋值_06](https://i-blog.csdnimg.cn/img_convert/073a6e3b5365fbffbf6934b15554e6a6.png)
- int 可以 被声明成
变量吗?
重新赋值后
int = 5
a = int(6)
- 将 5 赋给 变量 int
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_python_07](https://i-blog.csdnimg.cn/img_convert/47e4ee16ba82a16e73fd911eba5c889f.png)
- int 一旦被 重新 赋值
- 就
不能 完成类型转化 了 - 和 print 一样
观察
- 重启 游乐场
- 观察 类型 变化
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_python_08](https://i-blog.csdnimg.cn/img_convert/6589d74a1076268f01020433dc015277.png)
- 这个赋值过程
- 从 类型(type)
- 到 整型(int)
- 模块名 呢?
- 也能 这么乱赋值吗?👹
赋值
import os
os
locals()
- 引入os
- 本地就有了
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_09](https://i-blog.csdnimg.cn/img_convert/ba4703a51cdafa45045559161516a680.png)
覆盖
os = 1
os
locals()
- 覆盖之后
- os就不再是
- 导入的 那个模块了
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_赋值_10](https://i-blog.csdnimg.cn/img_convert/0ef56da7009d8d406cad2e7f40d4f352.png)
- 那 删了 之后
- 还能
恢复吗?
max
- max 也是
- 内建的函数
- builtin-function
- 和 print一样
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_python_11](https://i-blog.csdnimg.cn/img_convert/69fa0dcc1840e2ad61b1869b58545393.png)
- 将 1 赋给 max 之后
- 再调用 max
max = 1
max(1, 2)
- TypeError
- max 不再是 内建的函数
- 而是整数 无法调用了
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_12](https://i-blog.csdnimg.cn/img_convert/ee1868e3c6172abed1b156383f101212.png)
- 这max 能 在本地 看到 吗?
locals
locals()
- max 此时
- 是一个 整形变量名
- 不是 函数名
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_13](https://i-blog.csdnimg.cn/img_convert/d0d7f719e38b3f5ac0b15d75eaeadcae.png)
- 那我 要是
- 把 max 这个变量
- 删了呢?
删除max
del max
- 在本地
- 删除 max 变量
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_14](https://i-blog.csdnimg.cn/img_convert/4d8b6780a7c6eb1c747871464ab8c00a.png)
- 本地变量 max 消失
__builtins__.max 从新被识别为- 还是 内建函数
- builtins-function
- 就恢复了!😄
- 去总结吧!
总结
- 这次 了解到
- 已有的函数名、类名、模块名
- 不适合 覆盖了 赋新值
- 会 失去
原有功能 - 比如 max
![图片描述 [oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int_变量名_15](https://i-blog.csdnimg.cn/img_convert/22e758fd3f53740ca93be780f34ee6bc.png)
- 如果我
就想
- 让 max 当 变量名 表示
最大值 - 想让 max函数 可以继续被调用
- 又该
怎么做呢?🤔
Python编程:函数名重新赋值问题
596

被折叠的 条评论
为什么被折叠?



