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

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

淺談?lì)惣皩?duì)象的字段和方法

類:

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、網(wǎng)站建設(shè)與策劃設(shè)計(jì),日喀則網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:日喀則等地區(qū)。日喀則做網(wǎng)站價(jià)格咨詢:18980820575

類是某種類型集合的描述。

我們把擁有相同屬性的事務(wù)叫做類,里面封裝了相同的方法。比如人,汽車等。

對(duì)象:

對(duì)象是由類創(chuàng)建的實(shí)例。對(duì)象的三個(gè)特性:身份,類型,值,在這里不做描述。

類的私有屬性及訪問方式:

外部想要訪問類的私有屬性有兩種方式:

1:類內(nèi)創(chuàng)建一個(gè)函數(shù),來返回私有屬性

2:類特性

對(duì)象的私有字段:

創(chuàng)建一個(gè)類如下:

class Province:

    memo = "中國的23個(gè)省之一"   #是類的字段,是屬于類的,不屬于對(duì)象,這個(gè)屬于類的靜態(tài)字段,屬于類

    def __init__(self,name,captial,leader,flag):

        self.Name=name              #通過self創(chuàng)建的字段叫做動(dòng)態(tài)字段,不像靜態(tài)字段,動(dòng)態(tài)字段屬于對(duì)象

        self.Captial=captial

        self.Leader=leader

        self.__happy = flag      #創(chuàng)建對(duì)象的私有字段
XZ=Province("西藏","烏魯木齊","×××",True)   #實(shí)例化類,就是創(chuàng)建了個(gè)對(duì)象
print XZ.Captial
print XZ.__happy

執(zhí)行結(jié)果如下:

Traceback (most recent call last):

  File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 47, in 

烏魯木齊

    print XZ.__happy

AttributeError: Province instance has no attribute '__happy'

此例可見,私有字段是外部不可直接訪問的;外部若想訪問對(duì)象的私有字段,可以再在類中創(chuàng)建一個(gè)函數(shù),來顯示私有字段,代碼如下:

class Province:
    ...
    ...
    def show(self):             #在類中創(chuàng)建一個(gè)查看實(shí)例私有字段的方法

        return self.__happy
XZ=Province("西藏","烏魯木齊","×××",True)
print XZ.show()   #調(diào)用show方法

執(zhí)行結(jié)果如下:

True

 

還是上面的例子,添加私有方法代碼如下:

class Province:

    ...

    ...
    def __Hello(self):           #定義私有方法,直接使用類實(shí)例是訪問不到的,在類中可以訪問的到

        print "Hello,world"
    def access_hello(self):    #創(chuàng)建一個(gè)訪問私有方法的函數(shù)

        print self.__Hello()
XZ=Province("西藏","烏魯木齊","×××",True)
print XZ.__Hello

直接訪問對(duì)象的私有方法,執(zhí)行結(jié)果如下:

Traceback (most recent call last):

  File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 49, in 

    print XZ.__Hello

AttributeError: Province instance has no attribute '__Hello'

使用第一種方法訪問私有方法

print XZ.access_hello()     #調(diào)用類實(shí)例的訪問私有方法的函數(shù)
Hello,world

由上可見,類的私有方法對(duì)象是不能直接訪問的,也可以通過類內(nèi)可訪問私有方法的方法間接訪問

 


使用類特性訪問私有方法:

class Province:


    ...


    ...
    @property                  #創(chuàng)建類特性,返回私有方法

    def Hello(self):

        return self.__Hello()
XZ=Province("西藏","烏魯木齊","×××",True)
print XZ.Hello            #直接調(diào)用類特性,以字段的方式訪問,不需要帶括號(hào)

執(zhí)行結(jié)果如下:

Hello,world

類的私有字段的只讀和只寫

我們創(chuàng)建一個(gè)新類,代碼如下:

class Province1:
    def __init__(self,name,flag):
        self.name=name
        self.__Hello = flag
    
    @property                 #只讀的私有字段,是可以訪問的,但是不能修改
    def Heloo(self):
        return self.__Hello
TW = Province1('臺(tái)灣',True)

print TW.Heloo

TW.Heloo=False

print TW.Heloo

執(zhí)行結(jié)果如下:

True

Traceback (most recent call last):

  File "F:\lvsir\workspace\pystudy-oldboy\oop\privat_filld.py", line 76, in 

    TW.Heloo=False

AttributeError: can't set attribute

是可以讀到私有字段的,但是不能修改

下面添加代碼,是私有字段可以訪問并且可寫,前提是類要繼承object,代碼如下:

class Province1(object):
    def __init__(self,name,flag):
        self.name=name
        self.__Hello = flag
    
    @property                 #只讀的私有字段,是可以訪問的,但是不能修改
    def Heloo(self):
        return self.__Hello
    @Heloo.setter             #可改的私有字段,可以訪問,也可以修改,可以的私有字段的類要繼承object
    def Heloo(self,value):
        self.__Hello=value
TW = Province1('臺(tái)灣',True)

print TW.Heloo

TW.Heloo=False

print TW.Heloo

執(zhí)行結(jié)果如下:

True

False

 


本文名稱:淺談?lì)惣皩?duì)象的字段和方法
網(wǎng)頁URL:http://weahome.cn/article/psisoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部