精华内容
下载资源
问答
  • Python 下划线

    2020-10-15 10:38:51
    Python 下划线 1._var : 以单下划线开头的变量或方法仅供内部使用,不影响在外部访问变量值和方法,但会影响从模块中导入 2.var_: 合适的变量名被关键字占用,避免与关键字产生冲突 3.__var__: 魔法函数 4.__var: ...
    '''
    Python 下划线
    1._var : 以单下划线开头的变量或方法仅供内部使用,不影响在外部访问变量值和方法,但会影响从模块中导入
    2.var_: 合适的变量名被关键字占用,避免与关键字产生冲突
    3.__var__: 魔法函数
    4.__var: 私有的变量和方法,外部不能访问到,避免外部命名冲突,变量名和方法名被重写了
    5._ :表示某个变量是临时的或无关紧要的
    
    '''
    class Animal:
        def __init__(self):
            self.name = 'wangwang'
            self.__age = 18
    
        def run(self):
            print('runing')
    
        def __climb(self):
            print('climbing')
    
    
    
    class Monkey(Animal):
        age = 19
        def run(self):
            print('runing running ')
    
        def stand(self):
            print('standing')
    
    
    monkey = Monkey()
    print(monkey.name)
    
    # print(monkey.__age)   #AttributeError: 'Monkey' object has no attribute '__age'
    
    print(monkey.__dict__)  #{'name': 'wangwang', '_Animal__age': 18}, __age-->_Animal__age
    
    
    
    展开全文
  • python 下划线

    万次阅读 2018-11-12 19:44:22
    以单下划线开头,表示这是一个保护成员,只有类对象和子类对象自己能访问到这些变量。以单下划线开头的变量和函数被默认当作是内部函数,使用from module improt *时不会被获取,但是使用import module可以获取 以单...
    • 以单下划线开头,表示这是一个保护成员,只有类对象和子类对象自己能访问到这些变量。以单下划线开头的变量和函数被默认当作是内部函数,使用from module improt *时不会被获取,但是使用import module可以获取
    • 以单下划线结尾仅仅是为了区别该名称与关键词
    • 双下划线开头,表示为私有成员,只允许类本身访问,子类也不行。在文本上被替换为_class__method
    • 双下划线开头,双下划线结尾。一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突。是一些 Python 的“魔术”对象,表示这是一个特殊成员,例如:定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调用这个方法,一般用来对实例的属性进行初使化,Python不建议将自己命名的方法写为这种形式。
    展开全文
  • python下划线

    2017-08-28 19:28:44
    名称前的双下划线(如:__...Python文档指出,“__spam”这种形式(至少两个前导下划线,最多一个后续下划线)的任何标识符将会被“_classname__spam”这种形式原文取代,在这里“classname”是去掉前导下划线的当前

    名称前的双下划线(如:__shahriar)

    名称(具体为一个方法名)前双下划线(__)的用法并不是一种惯例,对解释器来说它有特定的意义。Python中的这种用法是为了避免与子类定义的名称冲突。Python文档指出,“__spam”这种形式(至少两个前导下划线,最多一个后续下划线)的任何标识符将会被“_classname__spam”这种形式原文取代,在这里“classname”是去掉前导下划线的当前类名。例如下面的例子:

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

    正如所预料的,“_internal_use”并未改变,而“__method_name”却被变成了“_ClassName__method_name”。此时,如果你创建A的一个子类B,那么你将不能轻易地覆写A中的方法“__method_name”

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

    名称前后的双下划线(如:init

    这种用法表示Python中特殊的方法名。其实,这只是一种惯例,对Python系统来说,这将确保不会与用户自定义的名称冲突。通常,你将会覆写这些方法,并在里面实现你所需要的功能,以便Python调用它们。例如,当定义一个类时,你经常会覆写“init”方法。

    虽然你也可以编写自己的特殊方法名,但不要这样做。

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

    其实,很容易摆脱这种类型的命名,而只让Python内部定义的特殊名称遵循这种约定

    展开全文
  • python 下划线意义

    2019-02-18 11:35:41
    python 下划线意义本文将解释下列五中下划线python中的使用意义单一下划线:_单前导下划线:_var单末尾下划线:var_双前导下划线:__var双前导和双末尾下划线:_\_ var__ 本文将解释下列五中下划线python中的...

    本文将解释下列五中下划线在python中的使用意义

    • 单一下划线:_
    • 单前导下划线:_var
    • 单末尾下划线:var_
    • 双前导下划线:__var
    • 双前导和双末尾下划线:__var__

    单一下划线:_

    单一下划线是用作一个名字,来表示某个变量是临时的或无关紧要的,或缺省。

    >>>for _ in range(0, 3):
        	print("python!") 
    python!
    python!
    python!
    >>>var, _, _ = 1, 0, 0
    >>>var
    1
    

    单前导下划线:_var

    python不像C++那样在“私有”和“公共”变量之间有很强的区别。 但是在python中,可以起到默认的小小的下划线警告标志,表示具有私有性质的成员属性,而不是真正会成为公共接口的一部分。

    >>>class FOO(object):
        	def __init__(self):
    	        self.f = 0
    	        self._f = 10
    >>>foo = FOO()
    >>>foo._f
    10
    

    单末尾下划线:var_

    单末尾下划线是由于像 class、def 这样的默认变量名称无法被使用,而采用添加单末尾下划线用以区分,来避免命名冲突。单个末尾下划线是一个约定,用来避免与Python关键字产生命名冲突。

    >>>def foo(var, class_)
    ...
    

    如果使用通配符从模块中导入所有名称,那么python不会导入带有前导下划线的名称(除非模块定义了覆盖此行为的__all__列表),大家可以尝试一下。

    双前导下划线:__var

    >>>class FOO(object):
        	def __init__(self):
    	        self.f = 0
    	        self._f = 10
    	        self.__foo = 12
    >>>foo = FOO()
    >>>dir(foo)
    ['_FOO__foo', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', 
    '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', 
    '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__',
     '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', 
     '__sizeof__', '__str__', '__subclasshook__',
     '__weakref__', '_f', 'f']
    

    我们能看到没有找到 ‘__foo’ 属性,但是多出了一个 '_FOO__foo’属性,这就是Python解释器所做的名称修饰, 这样做是为了防止变量在子类中被重写。而且该变量是无法直接获取的,是名称修饰,有点类似于私有成员,可以通过内部函数获取。

    >>>class FOO(object):
    		def __init__(self):
    			self.f = 0
    			self._f = 10
    			self.__foo = 12
    			self.__foo__ = 24
    		def get_f(self):
    			return self.__foo
    >>>f=FOO()
    >>>f.__foo
    File "***.py", line 2963, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-16-5c407179b833>", line 1, in <module>
        f.__foo
    AttributeError: 'FOO' object has no attribute '__foo'
    >>>f.get_f()
    12
    >>>FOO()._FOO__foo
    12
    

    双前导和双末尾下划线:__var__

    一个变量名称同时以双下划线开始和结束,则不会应用名称修饰。 由双下划线前缀和后缀包围的变量不会被python解释器修改。

    >>>f.__foo__
    24
    

    python保留了有双前导和双末尾下划线的名称,用于特殊用途。例如,__init__对象构造函数,或__var__,使得一个对象可以被调用。最好避免在自己的程序中使用以双下划线开头和结尾的名称,以避免与将来python语言的变化产生冲突。

    展开全文
  • 五种Python下划线模式速查表: 单前导下划线:_var 当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。 它是对程序员的一个提示 – 意味着Python社区一致认为它应该是什么意思,但程序的行为不受...
  • Python下划线和私有变量
  • python下划线 私有变量和公有变量 name mangling 技术
  • 在本文中,我们将介绍 Python 中 _ 字符的不同用法。就像 Python 中的许多其他内容一样,我们会看到 “_” 的不同用法主要是惯例问题。这里我们将介绍的几种不同情况: 单下划线(例如 _) 名称前加一个下划线(例如 ...
  • 下划线(_): 在交互解释器中,表示上一条语句执行输出的结果。另外,单下划线还可以作为特殊的临时变量,表示在后面将不会在用到这个变量。 名称前的单下划线:只能在...名称前后的双下划线:这类方法是Python内部.
  • python下划线变量的含义 http://www.cnblogs.com/snow-backup/p/5036096.html _xxx 不能用'from module import *'导入  __xxx__ 系统定义名字  __xxx 类中的私有变量名 核心风格:避免用下划线作为...
  • python下划线命名

    2021-02-22 13:40:46
    关于python 类、函数(方法)、变量命名时,使用的下划线的含义
  • python下划线总结

    2021-06-01 19:50:45
    单前下划线(_Var) 一个约定,以单个下划线开头的变量或方法仅..._var,使用通配符从模块中导入所有名称,则Python不会导入带有前导下划线的名称。(from module import *)。避免通配符导入,因为它们使名称空间中
  • https://geek-docs.com/python/python-examples/python-underline-double-underline-and-others.html
  • Python下划线与命名规范 先看结论,节省只想知道答案你的宝贵时间: _xxx 不能用于from module import * 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。 __xxx 双下划线...
  • Python下划线用法

    2016-09-05 18:47:32
    转载出处:Python下划线---完全解读 Python下划线作为变量前缀和后缀指定特殊变量 主要有三种用法:前单、前双、前双后双,具体解析如下: _xxx 不能用’from module import *’导入 __xxx__ 系统...
  • Python下划线命名模式

    2020-12-27 12:31:07
    单前面下划线 _var 命名约定,仅仅提供给内部使用。一般来水不会由python解释器强制执行(通配符导入除外),只是作为提示 单末尾下划线 var_ 通俗约定,用以避免与python关键字的命名冲突 双前面...
  • python下划线变量的含义 _xxx 不能用'from module import *'导入  __xxx__ 系统定义名字  __xxx 类中的私有变量名 核心风格:避免用下划线作为变量名的开始。 "单下划线" 开始的成员变量叫做...
  • Python 下划线解读

    2019-10-09 16:00:44
    “单下划线” 开头的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量; “双下划线” 开头的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。 以单下划线开头(_...
  • Python下划线的详解

    2021-04-10 14:42:09
    本文将讨论Python下划线(_)字符的使用方法。我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已。 单下划线(_) 通常情况下,会在以下3种场景中使用: 1、在解释器中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,689
精华内容 4,675
关键字:

python下划线

python 订阅