python巩固函数和模块_Python学习教程6:函数,模块和类的使用
Python函數(shù)
定義
函數(shù)是組織好的,可重復(fù)利用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼片段. 函數(shù)能提高應(yīng)用的模塊行,使代碼邏輯更加的條理清晰.
內(nèi)建函數(shù)
內(nèi)建函數(shù)是Python中自帶的,可供用戶重復(fù)使用的一類(lèi)單一功能的函數(shù),比如我們常用的print函數(shù),就屬于內(nèi)建函數(shù).
自定義函數(shù)
Python中除了內(nèi)建函數(shù)外,我們用的最多的就是自定義函數(shù)了,我們可以根據(jù)我們的代碼功能,把代碼切割成一段段獨(dú)立的功能函數(shù).然后在需要使用的地方直接調(diào)用用即可. 自定義函數(shù)包含以下幾個(gè)規(guī)則:函數(shù)帶代碼塊以def開(kāi)頭,然后接函數(shù)名和()
函數(shù)的參數(shù)放在()中
函數(shù)代碼的第一句可以可以使用文檔字符串,用于對(duì)函數(shù)的說(shuō)明
函數(shù)內(nèi)容都是以:起始,并且縮進(jìn)
return 是結(jié)束函數(shù),用于函數(shù)值返回,當(dāng)然如果你的函數(shù)不需要值返回,可以不寫(xiě)
我們來(lái)看一個(gè)完整的例子def maxNum(a,b):
"""
比較兩個(gè)值得大小,返回值大的那個(gè)
:param a:
:param b:
:return:
"""
if a>=b:
return a
else:
return b
復(fù)制代碼
上面例子中,我們自定義了一個(gè)名稱(chēng)叫maxNum的自定義函數(shù),他的功能是傳入兩個(gè)值,它會(huì)返回更大的那個(gè)值,"""""雙三引號(hào)中的內(nèi)容是函數(shù)的注釋說(shuō)明,下面是代碼邏輯.
函數(shù)的調(diào)用
我們定義了一個(gè)函數(shù)之后,當(dāng)然需要使用啦,函數(shù)調(diào)用也非常簡(jiǎn)單,只需要調(diào)用他的方法名即可,可以再其他函數(shù)中調(diào)用,也可以直接調(diào)用 如下例子:def maxNum(a,b):
"""
比較兩個(gè)值得大小,返回值大的那個(gè)
:param a:
:param b:
:return:
"""
if a>=b:
return a
else:
return b
def readNum(): #在函數(shù)中調(diào)用了maxNum函數(shù)
a=101
b=102
m=maxNum(a,b)
print m
m=maxNum(101,102) #直接調(diào)用
print m
復(fù)制代碼
上面例子直接運(yùn)行會(huì),系統(tǒng)會(huì)直接調(diào)用最下面的代碼,輸出102,
函數(shù)的導(dǎo)入
有時(shí)候,我們會(huì)在其他模塊中用到另外一個(gè)模塊中的函數(shù),比如我們新建了一個(gè)test.py模塊中的函數(shù)maxNum,然后又新建了一個(gè)fast.py模塊,如果我們要在fast.py模塊中使用test.py模塊中的maxNum函數(shù),就需要使用import test導(dǎo)入test.py模塊
一個(gè)py文件就代表一個(gè)模塊!!!!
舉個(gè)例子:
test.py模塊代碼#coding=utf-8
def maxNum(a,b):
"""
比較兩個(gè)值得大小,返回值大的那個(gè)
:param a:
:param b:
:return:
"""
if a>=b:
return a
else:
return b
復(fù)制代碼
fast.py模塊代碼#coding=utf-8
import test #方式一...可以直接導(dǎo)入模塊,然后通過(guò)模塊名.函數(shù)名調(diào)用
from test import * #方式二...也可以通過(guò)from先找到模塊,然后通過(guò)import導(dǎo)入模塊中的所有函數(shù)
def fast():
a=200
b=300
m=test.maxNum(a,b) #方式一導(dǎo)入時(shí),必須先通過(guò)模塊名,再調(diào)用函數(shù)名
m=maxNum(a,b) #方式二導(dǎo)入時(shí),可直接調(diào)用函數(shù)名
print m
復(fù)制代碼
我們認(rèn)真看fast.py文件中的調(diào)用方式,主要有兩種,import 和from..import,兩種的區(qū)別都在例子中說(shuō)明了,大家可以自己多試試體會(huì)一下.
Python的類(lèi)
Python是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,和java或者oc一樣,我們把一個(gè)類(lèi)歸為一個(gè)對(duì)象.如果你沒(méi)有接觸過(guò)相關(guān)的面向?qū)ο蟮恼Z(yǔ)言,可能你還需要去找相關(guān)的知識(shí)補(bǔ)一下.以下我會(huì)簡(jiǎn)單的說(shuō)明下.
類(lèi)的定義
類(lèi)是用來(lái)描述一些具有相同類(lèi)型或者屬性方法的集合,我們把類(lèi)的實(shí)例叫做一個(gè)對(duì)象. 下面舉個(gè)例子以便大家理解
比如定義一個(gè)人這個(gè)類(lèi),他有年齡,身高,性格等屬性,還可能有一些挑水,砍柴等技能.當(dāng)一個(gè)母親生下一個(gè)人來(lái)的時(shí)候(相當(dāng)于類(lèi)的實(shí)例),我們就能夠得到一個(gè)實(shí)際的對(duì)象,這個(gè)對(duì)象被賦予了前面說(shuō)的那些屬性.
類(lèi)的幾個(gè)概念類(lèi)變量 ,(也叫全局變量)類(lèi)的變量在對(duì)象中是公用的,類(lèi)變量定義在類(lèi)函數(shù)以外,類(lèi)變量通常不作為實(shí)例對(duì)象使用.
類(lèi)函數(shù),(也叫類(lèi)方法)類(lèi)中定義的函數(shù),一般包含一定的功能
成員變量,(也叫局部變量)成員變量一般的活動(dòng)范圍限于一個(gè)函數(shù)之中
繼承:即一個(gè)派生類(lèi)(derived class)繼承基類(lèi)(base class)的字段和方法。 繼承也允許把一個(gè)派生類(lèi)的對(duì)象作為一個(gè)基類(lèi)對(duì)象對(duì)待。 例如,有這樣一個(gè)設(shè)計(jì):一個(gè)Dog類(lèi)型的對(duì)象派生自Animal類(lèi),這是模擬"是一個(gè)(is-a)"關(guān)系(例圖,Dog是一個(gè)Animal)。
方法重寫(xiě):如果從父類(lèi)繼承的方法不能滿足子類(lèi)的需求,可以對(duì)其進(jìn)行改寫(xiě),這個(gè)過(guò)程叫方法的覆蓋(override),也稱(chēng)為方法的重寫(xiě)。
自定義類(lèi)
使用class關(guān)鍵字,接方法名來(lái)創(chuàng)建 舉例:class student():
"""
我是一個(gè)學(xué)生
"""
def read(self):
"""
我會(huì)讀書(shū)
"""
print 'read'
復(fù)制代碼
上面我們創(chuàng)建一個(gè)student的類(lèi),里面有個(gè)類(lèi)函數(shù)read,我們可以通過(guò)類(lèi)名.__doc__來(lái)查看函數(shù)說(shuō)明(也就是雙三引號(hào)部分的內(nèi)容)
self關(guān)鍵字
在上面創(chuàng)建的類(lèi)的例子中,你可能會(huì)疑惑read函數(shù)中的self的含義,現(xiàn)在我們就來(lái)說(shuō)明一下 self代表的是當(dāng)前類(lèi)的示例,也就是一個(gè)對(duì)象,通過(guò)他,我們可以在一個(gè)方法中調(diào)用類(lèi)中的另外一個(gè)方法,有點(diǎn)類(lèi)似于java中的this和oc中self. 舉例:class student():
"""
我是一個(gè)學(xué)生
"""
def read(self):
"""
我會(huì)讀書(shū)
"""
print 'read'
def talk(self):
"""
我會(huì)談?wù)?/p>
:return:
"""
print 'talk'
self.read()
復(fù)制代碼
上面的例子中,我們需要在函數(shù)方法talk中調(diào)用函數(shù)方法read,但是要怎么調(diào)用呢,這時(shí)候self就是一個(gè)橋梁,我們通過(guò)self得到類(lèi)的對(duì)象示例,從而得到他的對(duì)象和方法,再通過(guò)實(shí)例去調(diào)用read函數(shù)方法就可以了
類(lèi)的實(shí)例
在java或者oc中,一個(gè)類(lèi)的實(shí)例往往會(huì)用到new關(guān)鍵字,但在Python中,類(lèi)的實(shí)例直接使用類(lèi)名()即可s=student() #student為類(lèi)名,s為得到的類(lèi)變量,也就是類(lèi)的實(shí)例
復(fù)制代碼
基本上,當(dāng)我們得到一個(gè)類(lèi)的實(shí)例的時(shí)候,基本就相當(dāng)于得到了它的所有,我們可以通過(guò)實(shí)例調(diào)用他的函數(shù)方法,也可以通過(guò)實(shí)例調(diào)用他的全局變量.
Python 類(lèi)內(nèi)置屬性
Python的中的類(lèi),不管是內(nèi)置的還是自定義的,都包含一些共有的內(nèi)置屬性.__dict__ :該屬性會(huì)把整個(gè)類(lèi)中的屬性和數(shù)據(jù)組成一個(gè)字典返回
__doc__: 返回一個(gè)類(lèi)的描述
__name__:返回類(lèi)的類(lèi)名
__moudle__ :返回類(lèi)所在的模塊名
__base__:返回一個(gè)所有父類(lèi)構(gòu)成的元組
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python巩固函数和模块_Python学习教程6:函数,模块和类的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sqlplus怎样将名次显示在表的后面_
- 下一篇: websocket python爬虫_p