有这样的对象
class testDec(object):
def __init__(self):
self.__x = 'stuff'
@property
def x(self):
print 'called getter'
return self.__x
@x.setter
def x(self, value):
print 'called setter'
self.__x = value
Run Code Online (Sandbox Code Playgroud)
为什么我不能设置属性__x?这是一个追溯
>>> a.x
called getter
'stuff'
>>> a.x(11)
called getter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)
我正在使用 2.7.6 Python
有这样的装饰物对象
class wait_for_page_load(object):
def __init__(self, driver, time_to_wait=20):
self.driver = driver
self.time_to_wait = time_to_wait
def __call__(self, function):
@functools.wraps(function)
def wrapper(*args):
old_page = self.driver.find_element_by_tag_name('html')
function(*args)
WebDriverWait(self.driver, self.time_to_wait).until(staleness_of(old_page))
return wrapper
Run Code Online (Sandbox Code Playgroud)
我想将其应用于另一个类的方法,如下所示:
class VehiclePage(object):
def __init__(self, driver):
self.driver = driver
@wait_for_page_load(self.driver)
def open(self):
self.driver.get('%s/vehicles/' % BASE_URL)
Run Code Online (Sandbox Code Playgroud)
这给我一个错误。有没有办法传递self.driver给装饰器?