[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块

简介: 本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括:1. **回忆上次内容**:上次提到使用下划线避免命名冲突。2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。

[词根溯源]如何删除print函数_dunder_builtins_系统内建模块

回忆上次内容

  • 上次 用到了  下划线
位置 作用
放后面 避免名字冲突

  • 为什么 很多本地变量
  • 两边 都有 两个下划线
  • __name__
  • __doc__
  • __builtins__
  • 有什么说法吗??🤔

询问

  • 双下划线
  • 是 系统建立的
  • 有特殊的含义
  • 去游乐场
  • 问问python本人

说明文档

  • 直接help主题的名字

help("IDENTIFIERS")

  • 查找 标识符的帮助

  • 两边双下划线
  • 代表 系统定义的标识符
  • 比如__builtins__

  • 突然发现print函数不在本地

删除

  • 可以删除print函数吗?

del print

  • 无法删除!

  • 如果我想删除呢?

找到位置

print

  • print是
  • built-in function
  • 内建模块 的 函数

  • 内建模块 是不是 就是
  • __builtins__ ???🤔

查看

type(__builtins__)

  • builtins 是 内建模块
  • print会不会在这个模块里?

  • 如何调用模块中的函数来着?

回忆火星文

  • 新艺术 是怎么清屏的呢?
  • 使用 系统命令
  • clear

os.system("clear")

  • os 是模块名
  • 后面的点(.) 表示里面的
  • system 是函数名

照猫画虎

__builtins__

__builtins__.print

__builtins__.print("Hello world!")

  • 确实找到了!
  • print 就是
  • __builtins__ 模块里的 函数

  • 能删除吗?

删除

del __builtins__.print

print

  • 带着模块名 一起删

  • 删完了
  • 就真的 连 print 都找不到了!!!😭
  • __builtins__
  • 这个系统模块
  • 太重要了!!!
  • 怎么读呢?

dunder来历

  • 两个下划线
  • Double UNDERscore
  • 省略读法 dunder

Dunder (Double UNDERscore) Alias

Mark  Jackson was the first to suggest dunder as a speech shorthand for  double underscores (__) in a reply to a query from Pat Notz. Ned  Batchelder later stressed the need for a way of pronouncing __:

An  awkward thing about programming in  Python : there are lots of double  underscores. [snip] My problem with the double underscore is that it's  hard to say. How do you pronounce init__? "underscore underscore  init underscore underscore"? "under under init under under"? Just plain  "init" seems to leave out something important. I have a solution:  double underscore should be pronounced "dunder". So __init is "dunder init dunder", or just "dunder init".

  • 最初 是为了 说起来省事
  • 连读 再加 吞字 得到的

对比

  • 在发明 dunder 之前
  • __init__ 要念作 double underscore init
  • 其中的double underscore
  • 有17个字符
  • 发音是6声
  • 而dunder
  • 只有6个字符
  • 发音是2声
  • 简单多了

  • dunder 意味着 这个变量
  • 系统定义 的!
  • 能删吗?🤪

删除

del __builtins__

__builtins__

  • __builtins__ 迅速重生
  • 快得就像韭菜

  • 能把这个__builtins__覆盖了吗?

总结

  • 这次玩的 还是  下划线
位置和数量 作用
一个放后面 避免名字冲突
两个放两边 系统变量

  • 能把内建模块(builtins)
  • 覆盖掉吗??🤔
相关文章
|
20天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
105 80
|
22天前
|
Python
Python Internet 模块
Python Internet 模块。
119 74
|
9天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
30 14
|
4天前
|
存储 Python
[oeasy]python056_python中下划线是什么意思_underscore_理解_声明与赋值_改名字
在Python中,下划线有多种用途。单下划线(_)常用于避免命名冲突,如将`max`改为`max_`以保留内置函数功能。双下划线(__var__)通常用于特殊方法和属性,如`__name__`、`__doc__`等。此外,单下划线(_)在交互式解释器中表示上一次表达式的值,但不建议作为普通变量名使用。总结:下划线用于避免命名冲突及特殊标识。
11 1
|
5天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
19 2
|
18天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
30 9
|
8月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
99 0
|
4月前
|
算法 Python
Python编程的函数—内置函数
Python编程的函数—内置函数
23 0
|
8月前
|
算法 Python
Python编程实验四:函数的使用
Python编程实验四:函数的使用
114 0
|
8月前
|
存储 程序员 Shell
Python 进阶指南(编程轻松进阶):十、编写高效函数
Python 进阶指南(编程轻松进阶):十、编写高效函数
70 0