python函数作为参数
㈠ 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)
我感觉我想多了····且这个数字很大的话有性能问题····