电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

淺談Python中的函數(shù)(def)及參數(shù)傳遞操作

瀏覽:8日期:2022-06-18 14:28:19
如下所示:

#抽象 (函數(shù)) # 1、callable 判斷一個(gè)對(duì)象是否可以被調(diào)用x = 1def y(): return Nonecallable(y) # y可以被調(diào)用callable(x) # x不可以被調(diào)用 # 2、當(dāng)函數(shù)沒(méi)有return時(shí) 函數(shù)將默認(rèn)返回None# 3、放在函數(shù)開頭的字符串成為文檔字符串 如下:def square(x): ’my name is hexianmin’ #這個(gè)為文檔字符串 將作為函數(shù)的一部分存儲(chǔ)起來(lái) return x*x # 4、函數(shù)中的 ’傳值’ 和 ’傳地址’ 切片列表產(chǎn)生的是一個(gè)相等但不相同的副本(即兩個(gè)列表存儲(chǔ)地址不一樣)# 傳值: 調(diào)用函數(shù)時(shí)傳 變量 eg: x = 1 change(x)# 傳地址: 調(diào)用函數(shù)時(shí)傳 列表(在這里說(shuō)明:元組不可以改變 傳過(guò)去也不能修改) eg: x = list(’pyhon’) change(x) # 函數(shù)參數(shù) : 1、位置參數(shù) 2、關(guān)鍵字參數(shù)# 1、位置參數(shù) :實(shí)參與形參的對(duì)應(yīng)關(guān)系為 ’一一對(duì)應(yīng)’ 的關(guān)系 實(shí)參的前后位置決定了形參接到的值# 2、關(guān)鍵字參數(shù) :由指定關(guān)鍵字去給形參傳值(或者傳地址) 像字典一樣 key-value 的對(duì)應(yīng)關(guān)系# 注意: 1、二者不可以沖突 2、關(guān)鍵字參數(shù)和位置參數(shù)可以混在一起用,優(yōu)先關(guān)鍵字參數(shù),剩下的按照位置一一對(duì)應(yīng) # * / ** 的妙用 :收集參數(shù) 和 分配參數(shù) 的作用# 收集參數(shù): * : 將 多余的 一般的對(duì)象(位置參數(shù),字典也將作為位置參數(shù))收集成元組類型 ** : 將 多余的 關(guān)鍵字參數(shù) 收集為字典類型# 分配參數(shù): * : 將元組類型的參數(shù)分配給形參 ** : 將字典類型的參數(shù)分配給形參 # 收集參數(shù):def print_params_1(x, y, z=3, *pospar, **keypar): #注意這里的 z=3 是給z賦一個(gè)默認(rèn)值 當(dāng)調(diào)用函數(shù)時(shí)沒(méi)有給z賦值時(shí)使用 但是一旦調(diào)用時(shí)給z賦值了 z就不用默認(rèn)值了print(x, y, z) print(pospar) #在函數(shù)里面使用時(shí) : 1、不帶星號(hào)(*) 是 一個(gè)元組 2、帶星號(hào)(*) 是 取元組中的每個(gè)值出來(lái) print(keypar) #在函數(shù)里面使用時(shí) : 1、不帶星號(hào)(**) 是 一個(gè)字典(但是取不了值出來(lái)) 2、帶一個(gè)星號(hào)(*) 是 取字典中的每個(gè)關(guān)鍵字(key)出來(lái) 3、帶兩個(gè)星號(hào) 會(huì)報(bào)錯(cuò)print_params_1(1, 2, 4, 5, 6, 7, foo=1, bar=2) # 分配參數(shù):def foo(x, y, z, m=0, n=0): print(x, y, z) print(m) print(n) return -1def call_foo(*args, **kwds): #收集參數(shù) print(’calling foo!’) foo(*args, kwds) #分配參數(shù) 這里如果用foo(*args, **kwds) **kwds會(huì)報(bào)錯(cuò)x1 = 1y1 = 2z1 = 3d = { ’m1’: 4, ’n1’: 5}print(call_foo(x1, y1, z1, d1=1, d2=2)) #調(diào)用的時(shí)候 一個(gè)字典是作為一個(gè)位置參數(shù)的 # 作用域 :1、全局變量 2、局部變量 # 注意: 在局部函數(shù)(局部函數(shù)中默認(rèn)變量都是局部變量)中使用全局變量: 1、只使用一次(且重名了) 2、聲明后使用(聲明后就是全局變量了)# 1、只使用一次(且重名了):para = 1def combine(para): print(para,globals()[’para’]) # globals()[’para’] combine(2) # 2、聲明后使用(聲明后就是全局變量了):xx = 2def change_global(): global xx #聲明后就是全局變量了 xx = xx +2 print(xx)change_global() # 3、vars(): 賦值其實(shí)是一個(gè)看不見的字典 使用后返回的就是一個(gè)字典x11 = 1x22 = vars() print(x22[’x11’]) # 4、 vars() globals() locals() 使用后都是返回一個(gè)字典 # 作用域嵌套def multi(fac): def multiFac(num): # multiFac(num)函數(shù)被稱為 : 閉包return num * fac return multiFacdou = multi(2) #返回的 dou 現(xiàn)在是一個(gè)函數(shù)( multiFac(num)函數(shù) )dou(3) #這樣相當(dāng)于調(diào)用 multiFac(3) # list(map(str,range(10))) 與 [str(i) for i in range(10)] 是等價(jià)的# filter(lambda x: x.isalnum, seq)#from functools import reduce reduce(lambda x,y: x+y, numbers) # map filter reduce

補(bǔ)充:python參數(shù)傳遞問(wèn)題(參數(shù)傳出)

變量、對(duì)象與類型關(guān)系

python是動(dòng)態(tài)類型語(yǔ)言,并不需要預(yù)先聲明變量類型,變量的類型和值在賦值的那一刻完成初始化。進(jìn)一步說(shuō),python中的類型是屬于對(duì)象的,而不是變量。

例如:

a=2b=[1,2]

分別表示把一個(gè)int對(duì)象2,賦值給a;把一個(gè)list對(duì)象[1,2]賦值給b。

也就是說(shuō)在將不同類型的python對(duì)象通過(guò)賦值號(hào)賦給某一個(gè)變量時(shí),才完成該變量的初始化,而使得該變量代表某種類型的對(duì)象。

函數(shù)不可更改參數(shù)傳遞

如果想進(jìn)行參數(shù)傳遞,那么在python 中的定義函數(shù)之前,必須對(duì)參數(shù)的變量進(jìn)行聲明,否則會(huì)出現(xiàn)提示global name ’abun1’ is not defined,當(dāng)然,該變量的聲明過(guò)程可以是隱式的進(jìn)行。

例如a=2或者a={},在對(duì)a進(jìn)行賦值的那一刻完成變量的類型初始化,也即是完成變量的聲明。

但是,尤其需要注意的是,python中的int,long, bool, float,tuple() 等對(duì)象都是不能更改的,因此,在參數(shù)傳遞時(shí),不能傳遞輸出這些類型的變量。

例如:

def tmpF(a): a=10nint=2tmpF(nint)print(nint) #結(jié)果仍是2

因?yàn)椋兞縩int代表一個(gè)整型對(duì)象2,調(diào)用函數(shù)tmpF()時(shí),因整型對(duì)象無(wú)法改變,那么新建了一個(gè)整型對(duì)象10,使a指向它,因此nint代表的整型對(duì)象仍舊是2,沒(méi)有發(fā)生改變。

可更改參數(shù)傳遞

如果在定義函數(shù)時(shí),想利用參數(shù)輸出某些處理過(guò)的變量,那必須使用可以更改的對(duì)象,如list,dict等。

例如:

def tmpF(a): a.append(2)nx=[]tmpF(nx)print(nx) #nx=[2]

因?yàn)椋琹ist是可更改類型對(duì)象,因此,在調(diào)用函數(shù)tmpF()時(shí),對(duì)該list型對(duì)象進(jìn)行了修改,而nx指向的仍舊是這個(gè)對(duì)象。

所以,函數(shù)可以通過(guò)可變類型對(duì)象,將參數(shù)輸出。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 温州在线网| 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 锡膏喷印机-全自动涂覆机厂家-全自动点胶机-视觉点胶机-深圳市博明智控科技有限公司 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 除甲醛公司-甲醛检测-广西雅居环境科技有限公司| 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 |