日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python tutorial_Python Tutorial笔记

發(fā)布時(shí)間:2024/9/15 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python tutorial_Python Tutorial笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、類(PT第九章)

9.3.4 方法對象

class MyClass:

"""A simple example class"""

i = 12345

def f(self):

return 'hello world'

xf = x.f

while True:

print xf()

方法的特別之處在于實(shí)例對象被作為函數(shù)的第一個(gè)參數(shù)傳給了函數(shù)。在我們的示例中,調(diào)用x.f()完全等同于MyClass.f(x)。一般情況下,以n

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

9.3.5 類和實(shí)例變量

一般來說,實(shí)例變量用于對每一個(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)值是可變的對象如列表、字典或大部分類的實(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對 Python 而言絕對沒有任何特殊含義。但是請注意:如果不遵循這個(gè)約定,對其他的 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)庫概覽(PT第十、十一章)

導(dǎo)入模塊語句

模塊即為一個(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的用法

總結(jié)

以上是生活随笔為你收集整理的python tutorial_Python Tutorial笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。