目录

  • 单个下划线(_

  • 单下划线前缀的名称

  • 双下划线前缀名称

  • 前后都带双下划线名称

单个下划线

有3种情况

  1. 返回交互解释器中最后一次执行语句的结果

    >>> _
    Traceback (most recent call last):File "", line 1, in
    NameError: name '_' is not defined
    >>> 42
    >>> _
    42
    >>> 'alright!' if _ else ':('
    'alright!'
    >>> _
    'alright!'
    
  2. 作为名称使用

这个跟上面有点类似。_用作被丢弃的名称。按照惯例,这样做可以让阅读你代码的人知道,这是个不会被使用的特定名称。举个例子,你可能无所谓一个循环计数的值:

n = 42
for _ in range(n):do_something()
  1. i18n

_还可以被用作函数名。这种情况,单下划线经常被用作国际化和本地化字符串翻译查询的函数名。这种惯例好像起源于C语言。

from django.utils.translation import ugettext as _
from django.http import HttpResponsedef my_view(request):output = _("Welcome to my site.")return HttpResponse(output)

单个下划线前缀名称

以单下划线做前缀的名称指定了这个名称是“私有的”

比如在 import * 的情况下, 任何以单下划线开头的名称都不会被导入

双下划线前缀名称

以双下划线做前缀的名称(特别是方法名)并不是一种惯例;它对解释器有特定含义。Python会改写这些名称,以免与子类中定义的名称产生冲突。Python documentation中提到,任何__spam这种形式(至少以两个下划线做开头,绝大部分都还有一个下划线做结尾)的标识符,都会文本上被替换为_classname__spam,其中classname是当前类名,并带上一个下划线做前缀。

>>> class A(object):
...     def _internal_use(self):
...         pass
...     def __method_name(self):
...         pass
...
>>> dir(A())
['_A__method_name', ..., '_internal_use']

前后都带有双下划线名称

这些是Python的特殊方法名,这仅仅是一种惯例,一种确保Python系统中的名称不会跟用户自定义的名称发生冲突的方式。通常你可以覆写这些方法,在Python调用它们时,产生你想得到的行为。例如,当写一个类的时候经常会覆写__init__方法。

>>> class C(object):
...     def __mine__(self):
...         pass
...
>>> dir(C)
... [..., '__mine__', ...]

Python中的下划线相关推荐

  1. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  2. python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  3. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  4. python中不被定义_一日一技:在Python中双下划线私有方法不能被调用的原理

    一日一技:在Python中双下划线私有方法不能被调用的原理 在使用Python编写面向对象的代码时,我们会常常使用"继承"这种开发方式.例如下面这一段代码: class Info: ...

  5. python怎么打下划线符号_详解 Python 中的下划线命名规则

    在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后--那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...

  6. python中的下划线_讲解

    python中,下划线 "_""_"" \_" 不管是单独作为变量名或者作为变量名的前缀或者后缀,是有特殊含义的,下面简要的来总结一下. 1 ...

  7. Python中的下划线到底什么意思?

    1. 概述 在Python经常能见到含下划线(underscore)修饰的的变量和方法(如__name__,_var等),这些下划线的作用称之为名字修饰(name decoration).在Pytho ...

  8. python中__init__下划线怎么打出来___init__()-------“_”下划线开头的函数

    1.linux kernel中双下划线开头的函数 常常, 当你查看内核 API 时, 你会遇到以双下划线(__)开始的函数名. 这样标志的函数名通常是一个低层的接口组件, 应当小心使用. 本质上讲, ...

  9. python 中的下划线

    Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下 ...

  10. python中的下划线_Python中的下划线详解

    这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线_的不同用法绝大部分(不全是)都是一种惯例约定. 一. 单个下划线直接做变量名(_) 主要有三种情况: 1. 解释器中 _ ...

最新文章

  1. C++拾取——使用stl标准库生成等差、等比数列的方法
  2. 号称用GPT-3开发的游戏,却活生生玩出了人性黑暗面
  3. Gitorious安装与配置
  4. 台式计算机 启天 m4600,联想启天M4600-N000:高效的焕新之选——台式机
  5. 任务管理器在右下角的图标不显示
  6. java水果超市mysql_Java基础 | 项目实战之水果超市
  7. 力扣242.有效的字母异位词(JavaScript)
  8. python selenium 环境_配置Python Selenium环境
  9. Vim中的remap,noremap,nnoremap和vnoremap映射命令有什么区别?
  10. UVA12542 LA6149 Prime Substring【筛选法+贪心】
  11. 流媒体服务器搭建详解
  12. Java面试题之:分布式缓存
  13. 扒美女衣服——妄撮游戏实现原理
  14. javascript实现国密SM4
  15. django+layui表格数据管理
  16. Bootstrap中tooltip插件使用 | 爱骇客
  17. android启动接受不到boot_complete广播,android-BOOT_COMPLETED从未收到
  18. 【历史上的今天】2 月 28 日:阿帕网退役;Quintus 收购 Mustang;同步电流磁芯存储器获得专利
  19. 初识Grad-CAM
  20. 福昕阅读器无法添加书签

热门文章

  1. linux查看网卡驱动的命令,在Linux下确定网卡所使用驱动程序的方法
  2. 1995年五月java_95年属猪几月命不好,1995年五月出生属猪人的命
  3. Ma Jing博士的谣言检测 论文总结
  4. 坐在马桶上看算法:快速排序(过程图解)
  5. 常见的License介绍
  6. windows平台获取系统时间
  7. Java字符串比较的几种方法
  8. 关于苹果APP集成Sign in with Apple后,APP内注册需要强制绑定手机号,审核被拒问题
  9. 计算机考研复试上机算法学习
  10. 等Excel工作簿关闭后自动加密压缩备份