python - 带有可选参数的适当方法签名

标签 python python-3.x

假设我有一个类,其构造函数如下所示

class SomeClass():

  def __init__(self, aaa, bbb, ccc)

如果只需要 aaa 和 bbb 或 ccc,最合适的方法签名是什么?

下面的方法签名是否适用于这种情况?

def __init__(self, aaa=None, bbb=None, ccc=None)

最佳答案

我已经看到您问题中显示的签名在流行的 Python 库中使用,例如 NumPy , 但它们的用法不同:不是要求恰好是一个选项aaabbbccc,而是特定函数支持指定或未指定的每个参数,彼此独立。

对于你的情况,我可能会这样做:

class SomeClass():

    def __init__(self, option, **kwargs):
        # implementation here

用法可能类似于以下任何一种:

SomeClass('aaa')
SomeClass('bbb', some_b_specific_option='some other value')
SomeClass(option='ccc')

关于python - 带有可选参数的适当方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53773287/

相关文章:

Python字典合并两个字典并构建累积

python - 删除PyQt5中动态创建的按钮

python - Django 创建与现有外键数据库条目相对应的新条目

NLTK Stanford POS 标记器中的 Java 命令失败

python - Pycaret 混合/堆栈调整模型

python - 使用 scipy.integrate.complex_ode 而不是 scipy.integrate.ode

python - 正则表达式:匹配字符串开头以外的字符

python - 如何检查变量是否为具有 python 2 和 3 兼容性的字符串

python - 在间隔之间强制 scipy.stats.cauchy

python - 从 Pandas Column 中解压字典