Python下劃線用法

be_welkin發表於2020-10-26

前置單下劃線:

1.表示僅供內部使用,但實際上仍然可以被直接訪問。

class Person:
    def __init__(self):
        self.func()
        self._age=18

    def func(self):
        print('Human')

class Man(Person):
    def func(self):
        print("Mike")

t=Man()
print(t._age)

輸出:

Mike
18

2.如果用from moudle import *匯入模組,會報錯,需要使用__all__ = [“xxx”,“xxx”]來匯入

demo1

def _name():
    print('Human')

demo2

from demo1 import *

_name()

輸出:

NameError: name '_age' is not defined

後置單下劃線:

普通的變數名,通常用來避免和Python的內建變數名產生衝突

前置雙下劃線:

1.不可被from moudle import *直接匯入,同前置單下劃線

2.表明是私有屬性,只能在當前類中被呼叫,外部、子類都無法呼叫和繼承

class Person:
    def __func(self):
        print('Human')

class Man(Person):
    def __init__(self):
        self.__func()

Man()

輸出:

AttributeError: 'Man' object has no attribute '_Man__func'

前置後置雙下劃線:

表示python裡特殊方法專用的標識,如__init__和__dict__
一般不建議這樣命名

相關文章