输入新变量作为参数

时间:2018-06-13 18:57:28

标签: python-3.x arguments parameter-passing implicit-conversion

我想创建一个函数,它将一些字符串作为参数,并将其用作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的参数进行处理。

我的问题是:是否有一种更优雅的方式或更简单快捷的方法来自动转换为可用作参数的字符串?

1 个答案:

答案 0 :(得分:0)

请你详细说明,因为我不明白你在寻找或说的是什么。 如果你的意思是:你可以在函数内input("variable")吗?然后答案是肯定的。它只是来自python2的raw_input()。如果我没弄错的话,键盘的输入总是str

编辑后的帖子更新:

目前还没有更清楚你要做什么。 在函数结束时,您执行return *但我认为您知道这一点。

我真的很困惑,但你考虑过只做str(argument)吗?与takes_argument(str(argument))

中一样 第二次编辑后

第二次更新:

我想我终于明白你要做什么了,但我可能错了。

现在,问题在于def useless_function(argument) :会将argument定义为具有某些值的变量。除了实际让"argument"告诉python你插入的是一串字符而不是试图引用一些变量及其值时,我不知道任何其他方法。与print('something')的情况相同,如果我放print(something),python会尝试查找您未定义的名为something的变量。

希望这是有道理的。