上传视频封面
好的标题可以获得更多的推荐及关注者
导入import 回忆上次内容
上次直接从模块中导入变量、函数
from my_file import pi
导入my_file.pi
并作为 pi 使用
from my_file import pi as my_pi
导入变量 并 重命名
为什么 从模块中导入的变量 需要改名呢???🤔
冲突(local name clashes)
回忆 冲突现场
from math import pi as math_pi from my_file import pi as my_pi print(locals())
为了避免
local name clash
本地变量名 冲突
python帮助 里
是怎么说的 呢?
pep8
我们 看看pep-8
https://peps.python.org/pep-0008/#imports
因此 要特别注意
不要使用from xxx import *
因为
这样 会把模块里面
所有的变量 导入进来
特别容易冲突
local name clashes
这怎么理解呢?
做个测试 :e test.py
导入 random中所有变量
from random import * print(dir())
结果 导入了很多成员变量
是不是都导入进来了呢?
观察模块目录 from random import * print(dir()) import random print(dir(random))
有一些变量没有被导入进来
这些变量以下划线(_)开头
是 模块的内部变量
为什么下划线开头
就是 内部变量 呢?
寻找主题
去游乐场
help("topics")
查看帮助主题
应该找的主题是
标识符
identifiers
标识符 help("IDENTIFIERS")
找到标识符的帮助
看到PEP3131
回忆 中文 可以作为 变量名
翻页
ctrl+f
向后翻页
举个例子来说明
理解内部
from random import *
*代表所有的
非下划线开头的变量
在random模块中 有很多变量和函数
非下划线开头的 可以被导入进来
下划线开头的 不能被导入进来
导入进来的
都是 没有 下划线的
如果 就想要
导入 带下划线的 内部变量 呢?
点名道姓 from random import _e
指定好那个变量的名字
就可以
我就想要引入_e这个内部变量
有下划线开头的变量
是隐藏变量
需要点名导入
变量
点名 导入
带下划线的 隐藏变量
就可以了
变量名前面
加下划线
指的是 模块内部变量
如果在 变量名后面
加 下划线
又是 什么意思 来着?
回忆命名法中的下划线
避免和函数、模块 重名
max_ = max(5, 6)
再回顾我们使用的是
Snake Naming Convention
蛇形命名法
综合下划线的使用情况
位置和数量
作用
例子
单个下划线
上次表达式的值
_
一个放前面
隐藏变量
_e
一个放后面
避免名字冲突
max_
一个放前边
私有属性
__attribute
两个放两边
系统变量
__builtins__
总结
这次总结下划线用法
想写个 实用点儿的程序??🤔
下次再说 👋