python 類可以作為函數形參嗎

可以的。這也算多態的一種,比如:

>>>defck(A):
returnA.ck()

>>>classpop():
defck():
return"whatdoesthecksay~"


>>>classregular():
defck():
return"Quack!"


>>>ck(pop)
'whatdoesthecksay~'
>>>ck(regular)
'Quack!'

但你要保證傳入的類能夠支持函數所定義的行為。

㈡ Python 字典作為函數參數,編寫函數實現功能:將一個字典類型數據傳遞給函數經函數處理後,依次輸出鍵值

# -*- coding:utf-8 -*-#py3'''python 字典當作函數參數,及遍歷'''def f(di): //定義函數 for key in di: //兩種方式遍歷字典 print(key,':',di[key]) for key,value in di.items(): print(key,'-',value) dic={1:'a',2:3,3:'test',4:100}f(dic)

㈢ python 對象可以作為參數嗎


Python
的世界中,一切皆對象。
int
/
list
/
dict
/

都是對象,除此之外,函數、類本身也是對象。
那麼當然可以作為參數傳入方法中啊。

㈣ python中如何將函數的運算結果傳出來作為函數參數使用

首先你要明白,Python的函數傳遞方式是賦值,而賦值是通過建立抄變數與對象的關聯實現的專。
對於你的代屬碼:
執行 d = 2時,你在__main__里創建了d,並讓它指向2這個整型對象。
執行函數add(d)過程中:
d被傳遞給add()函數後,在函數內部,襲num也指向了__main__中的百2
但執行num = num + 10之後,新建了對象12,並讓num指向了這個新對象——12。
如果你明白函數中的局部變數與__main__中變數的區別,那麼很顯然,在__main__中,d仍在指著2這個對象,它沒有改變。因此,你列印d時得到了2。
如果你想讓輸出為12,最簡潔的辦法是:度
在函數add()里增加return num
調用函數時使用d = add(d)
代碼如下:
def add(num):
num += 10
return num
d = 2
d = add(d)
print d

㈤ python 字典怎樣當作參數傳入函數里,以及在

#-*-coding:utf-8-*-
#py3
'''
python字典當作函數參數,及遍歷內
'''
deff(di)://定義函數
forkeyindi://兩種方式遍容歷字典
print(key,':',di[key])
forkey,valueindi.items():
print(key,'-',value)

dic={1:'a',2:3,3:'test',4:100}
f(dic)

㈥ python 函數名作為方法參數

http://www.crifan.com/python_re_sub_detailed_introction/
上面的地址是關於sub函數參數的詳細解專釋。屬

㈦ python函數作為參數報錯

那個不能用括弧, 來來來, 我給你加個BUFF

print xxx是2.x的用法

python 3.x中必須使用print(xx), 即, 用括弧

㈧ python函數的參數如何作為參數傳個下一個函數,大概意思如下:

addid()中最後加一句,return a,那addid()的結果就是a,將addid()作為參數即可。

㈨ 關於python函數作為參數傳入的問題

def mul(x):
return x*x

def my_map(func, args):
for n in args:
print(func(n))

my_map(mul, [1,2,3,4])

㈩ python 編寫一個函數,此函數只能接受數字作為參數,並且判斷數字是否為質數,求大哥指教

#python編寫一個函數,此函數只能接受數字作為參數,並且判斷數字是否為質數,求大哥指教

deffunc(n):
iftype(n)==str:
s=n.split('.')
iflen(s)==1ands[0].isdigit():
m=0
foriinrange(1,int(n)+1):
ifint(n)%i==0:
m=m+1
ifint(n)<=1:
print('%s不是質數'%n)
else:
ifm==2:
print('%s是質數'%n)
else:
print('%s不是質數'%n)
iflen(s)>=2ands[0].isdigit()ands[1].isdigit():
ifint(s[1])==0:
m=0
foriinrange(1,int(s[0])+1):
ifint(s[0])%i==0:
m=m+1
ifint(s[0])<=1:
print('%s不是質數'%n)
else:
ifm==2:
print('%s是質數'%n)
else:
print('%s不是質數'%n)
else:
print('%s必須是整數'%n)
else:
print('%s必須是整數'%n) eliftype(n)==int:
m=0
foriinrange(1,int(n)+1):
ifn%i==0:
m=m+1
ifn<=1:
print('%s不是質數'%n)
else:
ifm==2:
print('%s是質數'%n)
else:
print('%s不是質數'%n)
else:
print('%s必須是整數'%n)

func('13.001')
func('13.000')
func('1a3.000')
func('1a3.1a3')
func('13.1a3')
func(11)
func(12)
func(12.1)

我感覺我想多了····且這個數字很大的話有性能問題····