`
mingren135
  • 浏览: 72505 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Python-特殊的下划线

 
阅读更多

1)看看下划线在模块变量命名的访问情况

 

a.py

corp = 'corp:taobao'  #public
_corp = '_corp:taobao' #obey python coding convention, consider it as private
__corp = '__corp:taobao' #private
__corp__='__corp__:taobao' #special, python system use, user should not define like it


b.py

from a import *

print corp #ok
print _corp  #Undefined variable: _corp
print __corp #Undefined variable: __corp
print __corp__ #Undefined variable: __corp__
 

2)下划线用在模块方法的情况和模块变量是一样的

 

3)看看下划线用在对象方法上的情况,可见在python对象中是没有严格意义上的private的

 

m = Manager('my', 200)

m._hello() #要用也没办法,not a good habit

m.__hello__() #not recommended

m.__hello() #AttributeError: Manager instance has no attribute '__hello'

m._Manager__hello() #name mangling就是将__fullprivate_method替换成了_Foo__fullprivate_method,目的就是以防子类意外重写基类的方法或者属性。
 

 

 

 

 

 

分享到:
评论

相关推荐

    08-python--writing-classes-特殊方法-属性

    "writing-classes-特殊方法-属性"这个主题涵盖了Python面向对象编程的关键概念。以下是对这些概念的详细解释: ### 1. 编写类(Writing Classes) 在Python中,我们通过`class`关键字来创建类。一个简单的类定义...

    Python-Hue提供了一个最小和强大的界面来打印终端中的彩色文本和标签

    例如,你可以将颜色、高亮、淡化、加粗和下划线等效果结合起来,以满足特定的显示需求。 在实际开发中,Python-Hue可以极大地提升命令行应用的用户体验。例如,在日志系统中,你可以用不同的颜色标记不同级别的日志...

    PyPI 官网下载 | python-slugify-1.2.6.tar.gz

    # 保留下划线并使用下划线分隔 slugified_text = slugify(text, separator='_') print(slugified_text) # 输出:"你好世界_这是一个测试字符串" # 自定义过滤规则,保留数字和字母 custom_cleaner = lambda x: x if...

    Python库 | python-escpos-2.1.2.tar.gz

    - **文本打印**:支持普通文本、加粗、斜体、下划线等样式。 - **图形打印**:可以打印位图图片,包括PNG、JPEG等格式。 - **条形码和二维码**:支持多种条形码类型(如EAN-13、CODE128)和二维码(如QR Code)的...

    PyPI 官网下载 | wemake-python-styleguide-0.4.0.tar.gz

    例如,它会强制执行统一的命名约定,如使用下划线分隔的驼峰式命名,以及避免使用单字母变量名。此外,它还检查代码结构,如避免长行、禁止魔法数字、鼓励使用类型注解等。 对于开发团队来说,`wemake-python-style...

    Python-PythonMarkdownJohnGrubersMarkdown的Python版实现

    2. **加粗和斜体**:使用一对星号(\*\*)或下划线(\_\_)来加粗文本,使用一对单星号(\*)或单下划线(\_)来斜体文本。 3. **引用**:在段落前添加一个大于号(>)来创建引用。 4. **列表**:使用星号(\*)、...

    08-python-重定义森林火灾模拟-接口-共有,私有和特殊方法和属性

    特殊方法(也称为魔术方法)是Python预定义的,以两个下划线开头和结尾,如`__str__`(返回对象的字符串表示)和`__add__`(实现加法操作)。在"08.12-python-共有,私有和特殊方法和属性.ipynb"文件中,可能会详细...

    使用Python创建和修改Word文档

    文本可以包含格式化信息,如加粗、斜体、下划线等。 3. **格式设置**:Python-DocX允许你控制文本的样式,如字体、大小、颜色、对齐方式等。例如,`font.name`用于设置字体,`font.size`用于设置字号。 4. **插入...

    python-guide python引言

    在选择Python解释器时,本指南推荐使用Python 2.7.x版本,除非有特殊需求。对于新模块开发,同样建议首先基于Python 2.7.x进行,后续再考虑兼容更早的版本。 **1.1.1 当前状况(Python 2)** - **版本推荐**:强烈...

    用python-docx自动记课堂笔记,有预留页和划重点功能·

    `python-docx`提供了设置文本格式的方法,比如改变字体、大小、颜色,以及应用下划线、加粗等效果: ```python # 设置文本格式 run = doc.add_paragraph().add_run('重点内容') run.font.bold = True # 加粗 run....

    华中农业大学pythonpython-Day31-35.rar

    - **封装与访问控制**: 解释了类的私有属性(以两个下划线`__`开头)和保护属性(一个下划线`_`开头),以及如何合理设置公有、私有和保护成员。 2. **模块与包管理** (Day32) - **导入模块**: 学习了`import`...

    Python-基础语法.pdf

    双下划线开头和结尾`__foo__`的标识符是Python的特殊方法,如`__init__()`是类的构造函数。 **Python保留字符**是Python语言中具有特殊含义的词汇,比如`and`、`for`、`if`等,它们不能作为普通变量或函数名使用。...

    2019华为软件精英挑战赛-工程编译指导书-Python-v1.01

    - 文件目录和文件名只能包含特定字符集:英文大写和小写字母、数字、短横线、下划线和加号。 - 文件名中不允许连续出现点号(".")。 遵循这些指南,参赛者能够确保其Python代码能在华为软件精英挑战赛中正确运行...

    python-2.7.5.amd64-pdb.zip

    10. **_sqlite3.pdb**: 和sqlite3.pdb相似,但文件名中包含了下划线,可能表示的是更底层的SQLite3组件的调试信息。 这些pdb文件都是为了提供对Python 2.7.5特定模块的调试支持,对于开发、测试和排查涉及这些模块...

    Python-基础习题(300题).pdf

    3. 在Python中,变量命名有一些规则,例如不能以数字开头,不能包含特殊字符(除非是下划线 `_`)。因此,选项C中的`$var_1`是非法的,因为它包含了美元符号 `$`。答案:C。 4. Python支持多种方式表示字符串,包括...

    Python-Google开源项目风格指南中文版

    Python是当今世界上最受欢迎的编程语言之一,尤其在数据科学、机器学习和Web开发等领域中扮演着重要角色。为了保持代码的可读性、可维护性和团队合作的效率,遵循一定的编程风格规范至关重要。Google作为技术巨头,...

    Python-RETT-test

    - `\w`, `\W`: 分别代表单词字符(包括字母、数字和下划线)和非单词字符。 - `^`, `$`: 分别表示行的开始和结束。 - `*`, `+`, `?`: 量词,分别表示前一个字符可以出现零次或多次、一次或多次、零次或一次。 - ...

    Python-Pyregex是一个开源在线的Python正则表达式编辑器测试器

    Python中的正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能用于搜索、替换和提取字符串中的模式。Pyregex项目是为Python开发者提供的一款在线的正则表达式编辑器和测试器,旨在简化...

    Python-MarkdownguidanceandreferenceMarkdown入门参考

    在Python开发中,Markdown被广泛用于编写README文件、文档注释、博客文章等,因为它的语法简洁明了,易于理解和编辑。以下是对Markdown入门的详细指南: 1. **基础语法** - **标题**:通过在行首添加1-6个#来创建...

Global site tag (gtag.js) - Google Analytics