python 函数 类 模块
python基礎(chǔ)語法5
- 函數(shù)
- 作用域
- 函數(shù)參數(shù)
- 函數(shù)對象
- 無名函數(shù)
- 回調(diào)函數(shù)
- 函數(shù)嵌套
- 類
- 類的創(chuàng)建
- 類的調(diào)用
- 初始化方法
- 類的繼承
- 類的定制
- 模塊
- 使用模塊
函數(shù)
封裝好,進行某種功能
del 函數(shù)名(參數(shù)):函數(shù)體return 返回值(可以沒有return語句)作用域
在函數(shù)內(nèi)定義的變量,僅能在函數(shù)內(nèi)部使用,這是局部變量
函數(shù)之外的定義與賦值的變量,可以再任何地方使用,這是全局變量
global語句,可以將局部變量變成全局變量global 函數(shù)名
函數(shù)參數(shù)
位置參數(shù):參數(shù)的順序和個數(shù)和函數(shù)定義中一致
sum=0 def math(a,b,c):sum=a+b+creturn sum a=1;b=2;c=3 math(a,b,c)#a,b,c 依次傳入math函數(shù)默認參數(shù):必須放在位置參數(shù)后面
def menu(hamburger,drinl,snacks='蛋撻'):print(('漢堡選擇:' + hamburger)print('飲料選擇:' + drink)print('小食選擇:' + snacks + '\n') menu('香辣雞腿堡','可樂') #打印結(jié)果:香辣雞腿堡,可樂,蛋撻 menu('香辣雞腿堡','可樂','薯條') #打印結(jié)果:香辣雞腿堡,可樂,薯條(給了3個參數(shù)。第3個參數(shù)被更新)不定長參數(shù):*參數(shù)名,當(dāng)傳入?yún)?shù)數(shù)量不確定時使用,數(shù)據(jù)類型是元組(tuple),可以用for來循環(huán)遍歷
def math(a,*b,c=1):print('a'=a)print('c'=c)for i in b:print(b) math(123,11,22,33,c=2)關(guān)鍵參數(shù):使用偽參數(shù)(形參)的名字來指定其對應(yīng)的實參(傳入的變量)
def math(a,b):x=a-breturn x y=math(b=3,a=7)字典傳參
1.關(guān)鍵參數(shù)作為字典接收
2.將字典展開并接收
def dic(a,b,c):print(a,b,c) d={'a':20,'b':30,'c':50} dic(**d) #20 30 50 #字典d被展開到偽參數(shù)a,b,c上函數(shù)對象
在函數(shù)名末尾不加括號,只寫名稱的格式所表示的是函數(shù)本身,我們將其稱之為函數(shù)對象,可以像值一樣將其帶入到變量中去
def printHello(name):print('hello',name) func=printHello#func是函數(shù)對象 func('siri') #打印結(jié)果是hello siri #將函數(shù)printHello帶入到func,func可以作為函數(shù)使用無名函數(shù)
進行簡單處理的函數(shù),可以使用關(guān)鍵字“l(fā)ambda"來記述,這種寫法稱為無名函數(shù)()
#函數(shù) def lo(a):return a.lower() #無名函數(shù) lo=lambda s:s.lower() print(lo('HELLO'))#輸出 hello回調(diào)函數(shù)
函數(shù)可以將別的函數(shù)作為參數(shù)使用,被作為參數(shù)使用的函數(shù)被稱為回調(diào)函數(shù)
def calcdisp(a,b,callback):print(callback(a,b)) def calllback(a,b):return (a+b) calcdisp(3,5,callback)#輸出值是8 #簡化寫法 calcdisp(3,5,lambda a,b : a + b)#callback被無名函數(shù)替代函數(shù)嵌套
可以定義函數(shù)中的函數(shù),內(nèi)部函數(shù)稱為本地函數(shù)
def func1():def func2():print(1)print(2)func2()#調(diào)用內(nèi)部函數(shù) func1()#調(diào)用外部函數(shù) #在這里不能調(diào)用func2,func2是func1的內(nèi)部函數(shù),作用域在func1內(nèi)類
類的創(chuàng)建
類的創(chuàng)建:class 類名(類名首字母大寫):
類的屬性創(chuàng)建:賦值語句
類的方法創(chuàng)建:def 方法名(self):
其中,self代表著實例化對象,是所有實例的替身
類的調(diào)用
類的實例化:例如coke=water(),表明water這個類創(chuàng)建了一個叫做coke的實例,這個實例可以調(diào)用water類中的屬性和方法
class Food:drink = '可口可樂'def hambage(self):print('香辣鱈魚堡') KFC=Food()#實例化類math,number為實例化對象,即self=number print(Food.drink)#調(diào)用實例化對象的屬性type_1 Food.hambage()#調(diào)用了實例化對象的方法plus注意:用def創(chuàng)建方法時,第一個參數(shù)位置要留給self,不需要傳參
在類的方法內(nèi)部想要調(diào)用類屬性和其他方法,用self.屬性或self.方法
初始化方法
當(dāng)每個實例對象被創(chuàng)建時,該方法內(nèi)的代碼無須調(diào)用,自動運行
可以在初始化方法內(nèi)部完成類屬性的創(chuàng)建,并設(shè)定初始值,方便隨時調(diào)用
那么調(diào)用屬性的代碼就發(fā)生了改變
class Pre:def __init__(self,name,age):self.name=nameself.age=agedef prin(self):print('%s的年齡是%d'%(self.name,self.age)) liu=Pre('劉劉',20)#作為name和age的值傳到Pre中 liu.prin()類的繼承
子類有父類的屬性和方法,子類屬于父類,父類屬于object類
class X():name=1 class Y(X):pass #占位 class Car:wheel=4def run(self):print('有%d個輪子'%self.wheel) class BMW(Car):pass BMW320=BMW() #子類BMW實例化,BMW320 print(BMW320.wheel)#有4個輪子類的多層繼承:
子類可以繼承父類,父類的父類,父類的父類的父類,語法同單層繼承
類的多重繼承:
一個子類可以繼承多個父類,和子類相關(guān)性更強的父類會放在更左側(cè),先在左側(cè)父類找,找不到再去右側(cè)父類(就近原則)
類的定制
子類可以再繼承的基礎(chǔ)上進行個性化定制,如創(chuàng)建新屬性、新方法;修改繼承的屬性和方法
屬性方法名不同時創(chuàng)建,相同名字時修改
也可以對實例化屬性進行修改
模塊
模塊,是一個將代碼封裝起來方便使用的py文件。里面可以有類、函數(shù)、變量。
a=10;b=1#變量print(a)#函數(shù)def math(a,b):#自定義函數(shù) c=0c=a+breturn c#math函數(shù)返回cclass Math:#類num='1'#屬性def __init__(self,a):#初始化函數(shù)self.a=adef plus(self):#方法print(self.num)import test.py#調(diào)用模塊使用模塊
1、import 語句
?法:import 模塊名
例?:import time;import csv
如何調(diào)?模塊中的函數(shù),變量
?法:模塊名.函數(shù);模塊名.變量
2、from…import語句
?法: 從模塊中導(dǎo)??個指定的部分到當(dāng)前模塊(函數(shù)、變量、類名)
例?:from csv import *,默認將CSV模塊中的所有函數(shù)、變量進?全部導(dǎo)?
3、if __name__=='__main__'
?法:當(dāng)運?的?件是程序的??時,則會執(zhí)?if name=='main’下的語句,相反,當(dāng)運?的?件作為模塊是被其他程序?qū)?時,代碼if name=='main’下的代碼則不會執(zhí)?
總結(jié)
以上是生活随笔為你收集整理的python 函数 类 模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android界面设计字体大小,Ando
- 下一篇: MATLAB学习——变量、数组