嘿,我有一个方法定义如下:方法的参数没有被传递到装饰机
from x.y import util
class my_Class(some_object):
@util.myDecorator
def foo(self, log_file):
'''
Test that search entered into the search bar is the search being
executed in the job.
'''
self.some_page.open()
textarea = self.some_page.searchbar
searchbar.run_search(log_file.search_string)
self.browser.capture_screenshot()
self.some_page.jobstatus.wait_for_job_complete()
self.verify_equals(
self.some_page.jobstatus.event_count,
log_file.event_count,
"Event count doesn't seem to be right.")
装饰是在文件util.py
def mydecorator(func):
def timeit(*args, **kwargs):
start_time = time.time()
ret=func(*args, **kwargs)
end_time = time.time()
print end_time - start_time
return ret
return timeit
当我尝试执行代码,它在ret=func(*args, **kwargs)
失败,该错误消息
TypeError: foo() takes exactly 2 arguments (1 given)
- 我打印* args来的内容(与
','.join(str(each) for each in args)
),看看它包含的,它打印出来
<....my_Class object at ...>
装饰工作正常,只有一个ARG(个体经营)方法。我在这里错过了什么吗?
你怎么调用'foo'方法? my_Class()。FOO()? – alko
你是怎么调用'foo()'的?这工作:'my_Class()。foo(123)'。这不是:'my_Class()。foo()'。 –
am使用py.test调用方法foo 'py.test -k foo file_name.py' – jeev