python apply函数 出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python apply函数 出错相关的知识,希望对你有一定的参考价值。
class mt(threading.Thread):#多线程类用来调用函数CrawlInHost、CrawlOutHost
def __init__(self,func,args=[],name=''):
threading.Thread.__init__(self)
self.name=name
self.args=(self.name)
self.func=func
def run(self):#冲在run函数,调用线程中的函数func
apply(self.func,self.args)
#这是那个调用的函数的原型:
def letsCrawl(tname):
print tname
#这是开始调用
t=mt(func=letsCrawl,name='number %d thread'%i)
你的(self.name)和self.name是一样的,没有区别,为了表示你想构建一个tuple,必须在第一个参数后加个“,”。 参考技术A self.args=(self.name, )追问
why?^^
python apply()函数
python apply函数的具体的含义:
apply(func [, args [, kwargs ]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数。args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,任 何参数都不会被传递,kwargs是一个包含关键字参数的字典。
apply()的返回值就是func()的返回值,apply()的元素参数是有序的,元素的顺序必须和func()形式参数的顺序一致
下面给几个例子来详细的说下:
1、假设是执行没有带参数的方法
def say():
print ‘say in‘
apply(say)
输出的结果是‘say in‘
2、函数只带元组的参数。
def say(a, b):
print a, b
apply(say,("hello", "老王python"))
输出的结果是hello,老王python
3、函数带关键字参数。
def say(a=1,b=2):
print a,b
def haha(**kw):
#say(kw)
apply(say,(),kw)
print haha(a=‘a‘,b=‘b‘)
输出的结果是:a,b
以上是关于python apply函数 出错的主要内容,如果未能解决你的问题,请参考以下文章
pandas apply返回多列时出错ValueError: Must have equal len keys and value when setting with an iterable解决方案
pandas apply返回多列时出错ValueError: Must have equal len keys and value when setting with an iterable解决方案
MySQL安装不上,总是在Apply security settings出错:Error Nr.1045 请教高手到底怎么回事?
启用linux防火墙转发规则时出错 Applying iptables firewall rules: iptables-restore:led ipta