2016-11-14 3 views

답변

1
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 
0
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 
0
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 

논리는 다음과 같이해야한다