Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0055
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
----
上次 了解了
关键字列表- keywords list
-
关键字 不能做 标识符
-
除了 关键字(keywords)之外
- 还有啥
不适合做标识符 吗?🤔
- 还有啥
- 试试这个
print
print = 1
print
- print 本是 内建的函数
- 重新赋值后
- 成为1了
- 还能输出吗?
print("hello")
- 不能输出了
- 整形数字 不能被调用
- 为啥会这样呢?
- 相当于
- 把整形数字
- 当成 函数来调用了
1("hello")
- 把1 直接当做函数来 调用
- 那哪儿成啊?
- 除了
函数名- 还有啥 最好别当 变量名 吗?
- int 是 整数类
- 可以完成 类型转化
b = int("6")
c = int(7.1)
- int类型
- 能用来转化变量类型
- int 可以 被声明成
变量吗?
int = 5
a = int(6)
- 将 5 赋给 变量 int
- int 一旦被 重新 赋值
- 就
不能 完成类型转化 了 - 和 print 一样
- 就
- 重启 游乐场
- 观察 类型 变化
-
这个赋值过程
- 从 类型(type)
- 到 整型(int)
-
模块名 呢?
- 也能 这么乱赋值吗?👹
import os
os
locals()
- 引入os
- 本地就有了
os = 1
os
locals()
- 覆盖之后
- os就不再是
- 导入的 那个模块了
- 那 删了 之后
- 还能
恢复吗?
- 还能
- max 也是
- 内建的函数
- builtin-function
- 和 print一样
- 将 1 赋给 max 之后
- 再调用 max
max = 1
max(1, 2)
- TypeError
- max 不再是 内建的函数
- 而是整数 无法调用了
- 这max 能 在本地 看到 吗?
locals()
- max 此时
- 是一个 整形变量名
- 不是 函数名
- 那我 要是
- 把 max 这个变量
- 删了呢?
del max
- 在本地
- 删除 max 变量
-
本地变量 max 消失
__builtins__.max 从新被识别为- 还是 内建函数
- builtins-function
- 就恢复了!😄
-
去总结吧!
- 这次 了解到
- 已有的函数名、类名、模块名
- 不适合 覆盖了 赋新值
- 会 失去
原有功能 - 比如 max
- 如果我
就想- 让 max 当 变量名 表示
最大值 - 想让 max函数 可以继续被调用
- 又该
怎么做呢?🤔
- 让 max 当 变量名 表示
- 我们下次再说!👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。














