成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python Tutorial筆記

Hydrogen / 1128人閱讀

一、類(PT第九章) 9.3.4 方法對(duì)象
class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        return "hello world"

xf = x.f
while True:
    print xf()

方法的特別之處在于實(shí)例對(duì)象被作為函數(shù)的第一個(gè)參數(shù)傳給了函數(shù)。在我們的示例中,調(diào)用x.f()完全等同于MyClass.f(x)。一般情況下,以n
個(gè)參數(shù)的列表調(diào)用一個(gè)方法就相當(dāng)于將方法所屬的對(duì)象插入到列表的第一個(gè)參數(shù)的前面,然后以新的列表調(diào)用相應(yīng)的函數(shù)。如果你還是不明白方法的工作原理,了解一下它的實(shí)現(xiàn)或許有幫助。引用非數(shù)據(jù)屬性的實(shí)例屬性時(shí),會(huì)搜索它的類。如果這個(gè)命名確認(rèn)為一個(gè)有效的類屬性即函數(shù)對(duì)象,就會(huì)將實(shí)例對(duì)象和函數(shù)對(duì)象封裝進(jìn)一個(gè)抽象對(duì)象:這就是方法對(duì)象。以一個(gè)參數(shù)列表調(diào)用方法對(duì)象時(shí),它被重新拆封,用實(shí)例對(duì)象和原始的參數(shù)列表構(gòu)造一個(gè)新的參數(shù)列表,然后以這個(gè)新的參數(shù)列表調(diào)用對(duì)應(yīng)的函數(shù)對(duì)象。

9.3.5 類和實(shí)例變量

一般來說,實(shí)例變量用于對(duì)每一個(gè)實(shí)例都是唯一的數(shù)據(jù),類變量用于類的所有實(shí)例共享的屬性和方法:

class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        return "hello world"


a=MyClass()
b=MyClass()
print a.i is b.i
print a.i is MyClass.i

a.i=5
print a.i is b.i
print a.i is MyClass.i

重要的警告:默認(rèn)值只計(jì)算一次。這使得默認(rèn)值是可變的對(duì)象如列表、字典或大部分類的實(shí)例時(shí)會(huì)有所不同

class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        return "hello world"
        
    def t(self,L=[]):
        L.append("a")
        return L


a=MyClass()
b=MyClass()


print a.t()
print b.t()
9.4 補(bǔ)充說明

通常,方法的第一個(gè)參數(shù)稱為self。這僅僅是一個(gè)約定:名字self對(duì) Python 而言絕對(duì)沒有任何特殊含義。但是請(qǐng)注意:如果不遵循這個(gè)約定,對(duì)其他的 Python 程序員而言你的代碼可讀性就會(huì)變差,而且有些類 查看 器程序也可能是遵循此約定編寫的。

問題:為啥p方法訪問不到o,但如果在__init__函數(shù)里定義了o就可以訪問呢

class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        self.o=123
        return "hello world"
        
    def t(self,L=[]):
        L.append("a")
        return L
        
    def p(self):
        print self.o
        

a=MyClass()
a.p()
9.8 異常也是類
class B:
    pass
class C(B):
    pass
class D(C):
    pass
for c in [B, C, D]:
    try:
        raise c()
    except D:
        print "D"
    except C:
        print "C"
    except B:
        print "B"
9.9 迭代器
class Reverse:
    """Iterator for looping over a sequence backwards."""
    def __init__(self, data):
        self.data = data
        self.len=len(data)
        self.index=-1
    def __iter__(self):
        return self
    def next(self):
        if self.index == self.len-1:
            self.index=-1
            raise StopIteration
        self.index = self.index + 1
        return self.data[self.index]

r=Reverse("abc")
for x in r:
    print x 
print r.index
二、標(biāo)準(zhǔn)庫(kù)概覽(PT第十、十一章)

導(dǎo)入模塊語(yǔ)句

模塊即為一個(gè)py文件,模塊名就是py文件名去掉.py,import后面接的就是模塊名,不同的模塊可以放在不同的包(就是文件夾啦,from后面接的那個(gè)就是包名)里,導(dǎo)入方法有兩種,比如包名叫做package,模塊名叫module,這個(gè)模塊里有個(gè)方法叫做function(),有個(gè)類叫Class

方式1:

import package.module
#調(diào)用方法的方式為
package.module.function()
import package.module
#調(diào)用方法的方式為
package.module.Class()

方式2:

from package import module
#調(diào)用方法的方式為
module.function()

而且,import后面可以接模塊內(nèi)的方法名,from后面接模塊名,比如:

from package.module import function
#可以直接調(diào)用
function()
from package.module import Class
#可以直接調(diào)用
Class()

然而并不存在import package.module.function的用法

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40664.html

相關(guān)文章

  • django rest framework個(gè)人學(xué)習(xí)筆記(二)————Quickstart

    摘要:我們將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的,來讓管理員能夠查看和編輯和。我們將會(huì)在接下來的例子中使用這個(gè)賬戶。創(chuàng)建一個(gè)新的模塊叫。但是是一個(gè)好的設(shè)計(jì)。最后,我們使用來導(dǎo)入默認(rèn)的登錄登出這是可選的。我們想啟用分頁(yè)和只有用戶能夠調(diào)用。 Quickstart 我們將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的API,來讓管理員能夠查看和編輯Users和Groups。 項(xiàng)目開始 創(chuàng)建一個(gè)新的項(xiàng)目叫 tutorial,然后創(chuàng)建一個(gè)app叫qu...

    gghyoo 評(píng)論0 收藏0
  • django rest framework個(gè)人學(xué)習(xí)筆記(二)————Quickstart

    摘要:我們將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的,來讓管理員能夠查看和編輯和。我們將會(huì)在接下來的例子中使用這個(gè)賬戶。創(chuàng)建一個(gè)新的模塊叫。但是是一個(gè)好的設(shè)計(jì)。最后,我們使用來導(dǎo)入默認(rèn)的登錄登出這是可選的。我們想啟用分頁(yè)和只有用戶能夠調(diào)用。 Quickstart 我們將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的API,來讓管理員能夠查看和編輯Users和Groups。 項(xiàng)目開始 創(chuàng)建一個(gè)新的項(xiàng)目叫 tutorial,然后創(chuàng)建一個(gè)app叫qu...

    JiaXinYi 評(píng)論0 收藏0
  • django rest framework個(gè)人學(xué)習(xí)筆記(二)————Quickstart

    摘要:我們將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的,來讓管理員能夠查看和編輯和。我們將會(huì)在接下來的例子中使用這個(gè)賬戶。創(chuàng)建一個(gè)新的模塊叫。但是是一個(gè)好的設(shè)計(jì)。最后,我們使用來導(dǎo)入默認(rèn)的登錄登出這是可選的。我們想啟用分頁(yè)和只有用戶能夠調(diào)用。 Quickstart 我們將會(huì)創(chuàng)建一個(gè)簡(jiǎn)單的API,來讓管理員能夠查看和編輯Users和Groups。 項(xiàng)目開始 創(chuàng)建一個(gè)新的項(xiàng)目叫 tutorial,然后創(chuàng)建一個(gè)app叫qu...

    izhuhaodev 評(píng)論0 收藏0
  • django rest framework個(gè)人學(xué)習(xí)筆記(三)————Tutorial1.Serial

    摘要:測(cè)試這是一個(gè)測(cè)試鏈接。注意編寫注釋是一個(gè)好的習(xí)慣。包括各個(gè)字段的驗(yàn)證標(biāo)記,例如。字段標(biāo)記也能夠控制在某些環(huán)境中如何顯示,例如呈現(xiàn)為之前的標(biāo)記相當(dāng)于中的。類似于有和類,也包含和兩個(gè)類。 Serialization——序列化 官網(wǎng)地址 前言 本教程將會(huì)介紹創(chuàng)建一個(gè)簡(jiǎn)單webAPI。在整個(gè)學(xué)習(xí)的過程中,將會(huì)逐一介紹到REST framework的各種組件,讓你全面的了解所有東西是如果組合在一...

    Pink 評(píng)論0 收藏0
  • django rest framework個(gè)人學(xué)習(xí)筆記(三)————Tutorial1.Serial

    摘要:測(cè)試這是一個(gè)測(cè)試鏈接。注意編寫注釋是一個(gè)好的習(xí)慣。包括各個(gè)字段的驗(yàn)證標(biāo)記,例如。字段標(biāo)記也能夠控制在某些環(huán)境中如何顯示,例如呈現(xiàn)為之前的標(biāo)記相當(dāng)于中的。類似于有和類,也包含和兩個(gè)類。 Serialization——序列化 官網(wǎng)地址 前言 本教程將會(huì)介紹創(chuàng)建一個(gè)簡(jiǎn)單webAPI。在整個(gè)學(xué)習(xí)的過程中,將會(huì)逐一介紹到REST framework的各種組件,讓你全面的了解所有東西是如果組合在一...

    FreeZinG 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<