Python - 类中的可变长度参数列表

标签 python

我尝试制作一个我想要完成的任务的简化版本;这是:

class CustomString():
    def __init__(self, function):
        self._creator_function = function

    @property
    def string(self, *args):
        return self._creator_function(*args)


def creator1(arg1):
    return 'Hello ' + arg1

def creator2(arg1, arg2):
    return 'Aloha ' + arg1 + ',' + arg2

CustomString 类是一个动态字符串生成器,它在初始化时提供了一个函数,该函数执行返回给定特定参数的字符串。这些函数可能需要明确数量的参数,如下例所示,但类方法应该灵活,因为每个实例可能有不同的创建者函数。

如果我运行以下命令:

c = CustomString(creator1)
c.string('John')

我希望看到:

'Hello John'

但是我得到了一个错误:

TypeError: creator1() missing 1 required positional argument: 'arg1'

最佳答案

字符串中删除属性

class CustomString():
    def __init__(self, function):
        self._creator_function = function

    def string(self, *args):
        return self._creator_function(*args)


def creator1(arg1):
    return 'Hello ' + arg1

def creator2(arg1, arg2):
    return 'Aloha ' + arg1 + ',' + arg2

c = CustomString(creator1)
print(c.string('John')) # prints Hello John

关于Python - 类中的可变长度参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59933900/

相关文章:

python - 使用 Keras 递归神经网络进行预测 - 准确度始终为 1.0

python - 将列名传递给 Pandas read_csv() 函数

Python 包安装 : pip vs yum, 还是两者一起?

python - 在 django 上, request.GET ["paramName"] 在 ajax 请求上返回列表

python - 我怎样才能创建一个具有不能被其子类继承的公共(public)方法的类?

python - matplotlib xkcd 不工作

c++ - 如何使用 Boost.Python 定义 Python 元类?

Azure 函数中的 Python config.py 文件

python - 如何通过logstash将字段添加到kibana

Python - 修改for循环变量