真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python訪問(wèn)限制是什么-創(chuàng)新互聯(lián)

小編給大家分享一下python訪問(wèn)限制是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在任城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,任城網(wǎng)站建設(shè)費(fèi)用合理。

說(shuō)到訪問(wèn)控制,python小白可能會(huì)很陌生。那就舉一個(gè)簡(jiǎn)單的例子,我們住的房子是私有物,而外面的公共設(shè)施是公有物。這樣是不是好理解一點(diǎn)了呢?

訪問(wèn)控制有三種級(jí)別:私有、受保護(hù)、公有

私有(Private):只有類自身可以訪問(wèn)

受保護(hù)(Protected):只有類自身和子類可以訪問(wèn)

公有(Public):任何類都可以訪問(wèn)

一、公有(Public)

在Python的類中,默認(rèn)情況下定義的屬性都是公有的。

class Foo(object):
    bar = 123
 
    def __init__(self, bob):
        self.bob = bob
 
print(Foo.bar)  # 123
 
foo = Foo(456)
print(foo.bob)  # 456

上面類Foo中的bar屬性就是類屬性,init方法中定義的bob是實(shí)例屬性,bar和bob都是公有的屬性,外部可以訪問(wèn),分別print類中的bar和實(shí)例中的bob,輸出了對(duì)應(yīng)的值。

二、受保護(hù)(Protected)

在Python中定義一個(gè)受保護(hù)的屬性,只需要在其名字前加一個(gè)下劃線_,我們將Foo方法中的bob和bar改為_(kāi)bob和_bar,他們就變成了受保護(hù)的屬性了,代碼如下:

class Foo(object):
    _bar = 123
 
    def __init__(self, bob):
        self._bob = bob
 
 
class Son(Foo):
 
    def print_bob(self):
        print(self._bob)
 
    @classmethod
    def print_bar(cls):
        print(cls._bar)
 
 
Son.print_bar()  # 123
 
son = Son(456)
son.print_bob()  # 456

定義一個(gè)類Son繼承自Foo,由于受保護(hù)的對(duì)象只能在類的內(nèi)部和子類中被訪問(wèn),不能直接調(diào)用print(Son._bar)或print(son._bob)來(lái)輸出這兩個(gè)屬性的值,所以定義了print_bar和print_bob方法,實(shí)現(xiàn)在子類中輸出,這段代碼也正常的輸出了_bar和_bob的值。

接下來(lái),試著反向驗(yàn)證一下,在類的外部,能不能訪問(wèn)其屬性,將上面代碼的輸出部分修改如下:

print(Son._bar)  # 123
 
son = Son(456)
print(son._bob)  # 456

(假裝)驚訝的發(fā)現(xiàn),竟然沒(méi)有報(bào)錯(cuò),也輸出了正確的值。

Python中用加下劃線來(lái)定義受保護(hù)變量,是一種約定的規(guī)范,而不是語(yǔ)言層面真的實(shí)現(xiàn)了訪問(wèn)控制,所以,我們定義的保護(hù)變量,依然可以在外部被訪問(wèn)到(這是個(gè)feature,不是bug)。

三、私有(private)

Python定義私有屬性,需要在屬性名前加兩個(gè)下劃線__,把上面的代碼修改一下,運(yùn)行一下會(huì)發(fā)現(xiàn)下面的代碼中的任何一個(gè)print都會(huì)報(bào)錯(cuò)的。

class Foo(object):
    __bar = 123
 
    def __init__(self, bob):
        self.__bob = bob
 
 
class Son(Foo):
 
    def print_bob(self):
        print(self.__bob)  # Error
 
    @classmethod
    def print_bar(cls):
        print(cls.__bar)  # Error
 
 
print(Son.__bar)  # Error
 
son = Son(456)
print(son._bob)  # Error

以上是python訪問(wèn)限制是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞名稱:python訪問(wèn)限制是什么-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/jdghs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部