在Python中,如何实现带参数的装饰器 如何从Python访问环境变量? 使用Python从HTML文件中提取文本 在Python中,如何实现带参数的装饰器 问题描述 我有装饰器传递变量'insurance_mode'的问题。我会通过以下装饰器声明来做到这一点: @execute_complete_reservation(True) def test_booking_gta_object(self): self.test_select_gta_object() 但不幸的是,这种说法不起作用。或许也许有更好的方法来解决这个问题。 def execute_complete_reservation(test_case,insurance_mode): def inner_function(self,*args,**kwargs): self.test_create_qsf_query() test_case(self,*args,**kwargs) self.test_select_room_option() if insurance_mode: self.test_accept_insurance_crosseling() else: self.test_decline_insurance_crosseling() self.test_configure_pax_details() self.test_configure_payer_details return inner_function 答案 带参数的装饰器的语法有点不同 - 带参数的装饰器应返回一个函数,该函数将接受一个函数并返回另一个函数。所以它应该真正返回一个普通的装饰器。有点混乱,对吧?我的意思是: def decorator(argument): def real_decorator(function): def wrapper(*args, **kwargs): funny_stuff() something_with_argument(argument) result = function(*args, **kwargs) more_funny_stuff() return result return wrapper return real_decorator 如何从Python访问环境变量? 使用Python从HTML文件中提取文本