zoukankan      html  css  js  c++  java
  • Python下划线变量的含义

    zz From http://blog.163.com/yang_jianli/blog/static/1619900062011627103516435/

    _xxx      不能用'from module import *'导入 
    __xxx__ 系统定义名字 
    __xxx    类中的私有变量名

    核心风格:避免用下划线作为变量名的开始。

    "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
    "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

    以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。

     结论:

    1、_xxx      以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。弱内部变量标示,如,当使用“from M import ”时,不会将以一个下划线开头的对象引入。

    2、__xxx    双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了,连子类也不可以,用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo ,如 self._FooBar__boo )

    3、__xxx___ 定义的是特列方法。用户控制的命名空间内的变量或是属性,如__init__,__import__或是__file__。只有当文档有说明时使用,不要自己定义这类变量。(就是说这些是python内部定义的变量名)

  • 相关阅读:
    [NOIP 2012] 疫情控制
    [HDU 6315] Naive Operations
    [BZOJ 3363] Cow Marathon
    单片机的模块化编程
    QT中定时器的使用方法
    47: error: undefined reference to `QWebView::QWebView(QWidget*)'
    如何分析一个QT类
    个人收集的一些库、工具、技术介绍
    点阵字体显示系列之二:汉字显示
    点阵字体显示系列之一:ASCII码字库的显示
  • 原文地址:https://www.cnblogs.com/DF11G/p/4030690.html
Copyright © 2011-2022 走看看