[oeasy]python073_下划线在python里是什么含义_内部变量私有变量

liftword1个月前 (03-19)技术文章6

导入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__

总结

  • 这次总结 下划线 用法
  • 想写个 实用点儿的程序??
  • 下次再说

相关文章

Python语言简介

使用百度搜索一下“TIOBE”,查询编程语言排行榜,可以看到最常用的5种计算机语言是:其中Python语言排名第3,与第2名的Java语言的份额相差很小。考虑到Java语言最近两年不断下滑,可以推测在...

python 中 r、b、u、f 的含义

r/R:非转义的原始字符串与普通字符相比,其他相对特殊的字符,其中可能包含转义字符。即,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示 Tab 等。而如果是以 r...

公有还是私有?一文搞懂奇怪的python变量

很多童靴刚开始接触python变量的时候应该会非常困惑,因为python中的变量实在是太灵活了,而且变量的写法也是很独特,相同的字符,前面或者后面加单下划线或者双下划线都可以组成不同的变量名称。极度灵...

// 在 Python 中是什么意思?Python 中的运算符

在 Python 中,使用双斜杠运算符执行下层除法。此运算符将第一个数字除以第二个数字,并将结果向下舍入为最接近的整数(或整数)。////在本文中,我将向您展示如何使用运算符并将其与常规除法进行比较,...

python中的int是什么意思

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。python...