【发布时间】:2018-11-23 11:00:33
【问题描述】:
我想创建一个函数,将一些字符链作为参数,并将其用作str 对象。
def useless_function(argument) :
print(argument)
useless_function(banana)
--> NameError: name 'banana' is not defined
这就是我所做的:我创建了一个装饰器,它将我作为参数输入的任何内容转换为我的函数可以打印的str。
def decorator(f) :
def wrapper(arg_f) :
str_arg = str(arg)
f(str_arg)
return wrapper
所以现在我可以用我的装饰器装饰 useless_function,useless_function(banana) 将打印'banana'。并且它将与它作为useless_function 的参数输入的任何内容一起使用。
我的问题是:有没有更优雅的方式或更简单快捷的方式来将这种自动转换为可用作参数的字符串?
【问题讨论】:
-
这个问题很难理解。请至少添加一个示例,说明您想要实现的行为或目标。
-
其实我的decorator是不行的,因为
argument是f不知道的(未定义),它也是wrapper不知道的……所以问题还是一样。
标签: python-3.x arguments parameter-passing implicit-conversion