最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中單雙下劃線的區(qū)別對比分析

 更新時間:2023年04月24日 09:17:16   作者:WTIAW.TIAW  
Python中存在一些特殊的方法,有些方法以雙下劃線 “__” 開頭和結(jié)尾,它們是Python的魔法函數(shù),比如__init__()和__str__等等,不用要這種方式命名自己的變量或者函數(shù),這篇文章主要介紹了python里面單雙下劃線的區(qū)別,需要的朋友可以參考下

區(qū)別:

xx:公有變量,所有對象都可以訪問;

xxx:雙下劃線代表著是系統(tǒng)定義的名字。
__xxx:雙前置下劃線,避免與子類中的屬性命名沖突,無法在外部直接訪問。代表著類中的私有變量名。
_xxx:單前置下劃線,私有化屬性和方法,類對象和子類可以訪問。不能用“from module import *”導(dǎo)入。
xx_:單后置下劃線,用于避免與python關(guān)鍵字的沖突。

Python中存在一些特殊的方法,有些方法以雙下劃線 “__” 開頭和結(jié)尾,它們是Python的魔法函數(shù),比如__init__()和__str__等等。不用要這種方式命名自己的變量或者函數(shù)。
示例代碼:

class Test(object):
    def __init__(self, text):
        self.text = text
 
    def __str__(self):
        return self.text
 
 
text = input("Please input text:")
obj = Test(text)
print(obj)

運行結(jié)果:

在前面加上“__”,表示它是私有成員,我們不能直接訪問。比如 “__xxx” 如果要訪問得通過 _class__xxx 的方式進(jìn)行訪問。雖然不能防止修改私有屬性,但可以有效降低有意或者無意的修改。

示例代碼:

class Test(object):
    def __init__(self, text):
        self.__text = text
        self.__text2 = text
 
    def func(self):
        print(self.__text)
 
    def __str__(self):
        return self.__text
 
 
text = input("Please input text:")
obj = Test(text)
print(obj)
obj.func()
#  print(obj.__text)  # 報錯
print(obj._Test__text)
print(dir(obj))

運行效果:

從圖中可以看到雙下劃線開頭的變量,Python自動在前面加上了 “_class” 的前綴,所以我們訪問時也要加上相應(yīng)的前綴才能正常訪問。

_xxx:一種約定,用來指定變量私有。程序員用來指定私有變量的一種方式。不能用from module import * 導(dǎo)入,其他方面和公有一樣訪問。

示例代碼:

#  test.py
class Test1(object):
    def __init__(self):
        self.text = "my is text!"
 
    def __str__(self):
        return self.text
 
 
class _Test2(object):
    def __init__(self):
        self.text = "my is text2!"
 
    def __str__(self):
        return self.text
 
 
if __name__ == '__main__':
    obj1 = Test1()
    obj2 = _Test2()
    print(obj1)
    print(obj2)

可以通過別的方式訪問這個類,修改我們的test2.py文件為以下內(nèi)容。

#  test2.py
import test
 
obj1 = test.Test1()
print(obj1)
obj2 = test._Test2()
print(obj2)

除了不能通過 from module import * 這種方式導(dǎo)入外,跟公有類并沒有差別。

運行效果:

__sizeof__() : 打印系統(tǒng)分配空間的大小。
示例代碼:

class Test(object):
    def __init__(self):
        self.__text = "my is text!"
 
    def func(self):
        print(self.__text)
 
    def __str__(self):
        return self.__text
 
 
obj = Test()
print(obj)
print(dir(obj))
print("*" * 100)
print(obj.func.__sizeof__())
print(obj.func.__sizeof__)
print("*" * 100)
print(obj.func().__sizeof__)
print(obj.func().__sizeof__())

運行結(jié)果:

__name__:前面和后面加上下劃線代表著是系統(tǒng)定義的名字。普通變量不能使用此方式來命名。__name_表示當(dāng)前模塊執(zhí)行過程中的名稱,如果該模塊執(zhí)行,則__name__的值為__main_,如果模塊是被導(dǎo)入的,則__name__的值為被導(dǎo)入的模塊的模塊名字。

__main__:表示整個工程開始運行的入口。
示例代碼:

#  test_name.py
def func():
    if __name__ == '__main__':
        print("my name is %s" % __name__)  # my name is __main__
    else:
        print("It's me: %s" % __name__)  # It's me: test_name
 
 
if __name__ == '__main__':
    func()  # my name is __main__
 
#  在其它文件中
#  test_name2.py
import test_name
 
test_name.func()  # It's me: test_name

到此這篇關(guān)于python里面單雙下劃線的區(qū)別的文章就介紹到這了,更多相關(guān)python單雙下劃線的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python畫一張完整的K線圖的方法教程

    使用Python畫一張完整的K線圖的方法教程

    Pyecharts?是?Python?里的一個強(qiáng)大可視化庫,基于百度?Echarts,支持各種圖表:柱狀圖、折線圖、餅圖、K?線圖等等,本文就給大家介紹了Python如何使用Pyecharts畫一個漂亮的K線圖,感興趣的小伙伴跟著小編一起來看看吧
    2025-04-04
  • Selenium 模擬瀏覽器動態(tài)加載頁面的實現(xiàn)方法

    Selenium 模擬瀏覽器動態(tài)加載頁面的實現(xiàn)方法

    這篇文章主要介紹了Selenium 模擬瀏覽器動態(tài)加載頁面的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 用TensorFlow實現(xiàn)戴明回歸算法的示例

    用TensorFlow實現(xiàn)戴明回歸算法的示例

    這篇文章主要介紹了用TensorFlow實現(xiàn)戴明回歸算法的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • python3實現(xiàn)表白神器

    python3實現(xiàn)表白神器

    這篇文章主要為大家詳細(xì)介紹了python3實現(xiàn)表白神器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python爬取亞馬遜書籍信息代碼分享

    python爬取亞馬遜書籍信息代碼分享

    這篇文章主要介紹了python爬取亞馬遜書籍信息代碼分享,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Python中OpenCV實現(xiàn)查找輪廓的實例

    Python中OpenCV實現(xiàn)查找輪廓的實例

    本文將結(jié)合實例代碼,介紹 OpenCV 如何查找輪廓、獲取邊界框。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • python獲取標(biāo)準(zhǔn)北京時間的方法

    python獲取標(biāo)準(zhǔn)北京時間的方法

    這篇文章主要介紹了python獲取標(biāo)準(zhǔn)北京時間的方法,實例分析了Python通過www.beijing-time.org的官網(wǎng)獲取標(biāo)準(zhǔn)北京時間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python如何實現(xiàn)拆分?jǐn)?shù)據(jù)集

    Python如何實現(xiàn)拆分?jǐn)?shù)據(jù)集

    這篇文章主要介紹了Python如何實現(xiàn)拆分?jǐn)?shù)據(jù)集問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • scratch3.0二次開發(fā)之用blocks生成python代碼

    scratch3.0二次開發(fā)之用blocks生成python代碼

    python是blockl.generator的一個實例,會調(diào)用generator里的方法,這篇文章主要介紹了scratch3.0二次開發(fā)之用blocks生成python代碼,需要的朋友可以參考下
    2021-08-08
  • Python溫度轉(zhuǎn)換實例分析

    Python溫度轉(zhuǎn)換實例分析

    這篇文章主要介紹了Python溫度轉(zhuǎn)換實例分析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

景宁| 湖北省| 淳化县| 张家港市| 济南市| 股票| 上思县| 博兴县| 南昌市| 城口县| 米泉市| 承德县| 南丰县| 武宁县| 枝江市| 巨鹿县| 丽水市| 即墨市| 福安市| 偏关县| 离岛区| 佛山市| 仁寿县| 通许县| 门头沟区| 正定县| 庆城县| 禄劝| 砀山县| 犍为县| 屯昌县| 安乡县| 宜兰市| 泰来县| 武城县| 杭锦后旗| 来宾市| 策勒县| 浦县| 白山市| 肇州县|