인수를 취하는 데코레이터가 있어야하고 메소드가 (일부 간단한 로직을 기반으로) 실행되도록 허용되거나 예외가 발생해야합니다. 그러나 나는이 장식자를 어떻게 쓸 수 있을지 전혀 모른다.메소드를 실행하거나 예외를 발생시키는 파이썬 장식 자
def my Decorator(arg):
if arg:
"run the method"
else:
raise "Exception"
인수를 취하는 데코레이터가 있어야하고 메소드가 (일부 간단한 로직을 기반으로) 실행되도록 허용되거나 예외가 발생해야합니다. 그러나 나는이 장식자를 어떻게 쓸 수 있을지 전혀 모른다.메소드를 실행하거나 예외를 발생시키는 파이썬 장식 자
def my Decorator(arg):
if arg:
"run the method"
else:
raise "Exception"
def parametrised_decorator(parameter):
def parametrised(function):
@functools.wraps(function)
def inner(*args, **kwargs):
if parameter:
return function(*args, **kwargs)
else:
raise Exception()
return inner
return parametrised
def my_Decorator(arg=None):
def decorator(func):
def wrapper(*args, **kwargs):
if arg:
return func(*args, **kwargs)
else:
raise Exception()
return wrapper
return decorator
from functools import wraps
def my_decorator(f):
@wraps(f)
def wrapper(*args, **kwargs):
if kwargs.pop('runit', None):
return f(*args, **kwargs)
else:
raise Exception()
return wrapper
@my_decorator
def example():
print('example')
if __name__ == '__main__':
# runs function
example(runit=True)
# runs exception
example()
:
class One(obj):
trend = "trend"
@myDecorator(self.trend)
def click_button(self):
clickable_element = self.driver.find_element_by_id(self.trend)
clickable_element.click()
return self
class Two(obj):
map = "map"
@myDecorator(self.map)
def click_button(self):
clickable_element = self.driver.find_element_by_id(self.map)
clickable_element.click()
return self
논리는 다음과 같이해야한다