python单/双下划线使用

简介: 在Python编程中经常会遇到函数(function),方法(method)及属性(attribute)以下划线'_'作为前缀,这里做个总结。主要存在四种情形:1 1. object # public2 2.

在Python编程中经常会遇到函数(function),方法(method)及属性(attribute)以下划线'_'作为前缀,这里做个总结。

主要存在四种情形:
1 1. object # public
2 2. __object__ # special, python system use, user should not define like it
3 3. __object # private (name mangling during runtime)
4 4. _object # obey python coding convention, consider it as private
1和2两种情形比较容易理解,不多做解释,最迷惑人的就是3和4情形。
在解释3和4情形前,首先了解下python有关private的描述,python中不存在protected的概念,要么是public要么就是private,但是python中的private不像C++, Java那样,它并不是真正意义上的private,通过name mangling(名称改编,下面例子说明)机制就可以访问private了。
 1 class Foo():
 2     def __init__():
 3         ... 
 4     def public_method():
 5         print 'This is public method'
 6     def __fullprivate_method():
 7         print 'This is double underscore leading method'
 8     def _halfprivate_method():
 9         print 'This is one underscore leading method'
10 
11 f = Foo()
12 f.public_method() # OK
13 f.__fullprivate_method() # Error occur
14 f._halfprivate_method() # OK

上文已经说明了,python中并没有真正意义的private,见以下方法便能够访问__fullprivate_method()

  

相关文章
|
4月前
|
索引 Python
Python 中的单下划线和双下划线
Python 中的单下划线和双下划线
|
11月前
|
Python
一日一技:在Python中双下划线私有方法不能被调用的原理
一日一技:在Python中双下划线私有方法不能被调用的原理
69 0
|
前端开发 Python
关于Python的前后、单双下划线作用,看完这篇文章吊打面试官!
在Python中,可能最常见的就是各种常量、变量、函数、方法前后添加的那些下划线了。有前面加的、后面加的,加一个的,加两个的,看到头晕。那么,你对这些知识都掌握了吗 ?让我们先来做一个自测吧。
246 0
|
算法 Python 容器
Python - 面向对象编程 - 魔术方法(双下划线方法)
Python - 面向对象编程 - 魔术方法(双下划线方法)
114 0
|
C语言 Python
Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
|
8天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
8天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
11天前
|
缓存 监控 Python
解密Python中的装饰器:优雅而强大的编程利器
Python中的装饰器是一种强大而又优雅的编程工具,它能够在不改变原有代码结构的情况下,为函数或类添加新的功能和行为。本文将深入解析Python装饰器的原理、用法和实际应用,帮助读者更好地理解和利用这一技术,提升代码的可维护性和可扩展性。

热门文章

最新文章