Python:将参数传递给 __init__

See*_*pha -1 python

我是 python 新手,有以下init:

def __init__(self, name, iMD=False, iI=False, o=0, o1=0, o2=0,
                 t=QUIC, mF=QUIC_KW, pM=0, pD=0, nF=0, pA=0, iS=0, iPA=1, h='',
                 iRC='', sC='', iM=0, iS=0, pAIR=0, 
                 pAII=0, cM='', k=0.0, t=0.0, m=0.0, mi=0.0, av=0.0, mL=0.0,
                 mD=None, iD=None, cCI=None, cCSEI=None, rfI = 0)
Run Code Online (Sandbox Code Playgroud)

基本上,当我创建这个对象时,我想传递所有参数,除了那些默认值为 的参数None。

Python 有解决办法吗?我也不想移动参数的顺序,因为有很多遗留代码。

编辑:只是为了澄清。是的,有默认值,但是,我正在使用从数据库读取的非默认值创建此对象。基本上我需要传递除 mD、iD、cCI 和 cCSEI 之外的所有参数的参数。

我希望我可以构造一个像这样的新对象: object(arg1, arg2, arg3, arg4, arg5, arg6, arg7, ... , arg27, , , , , arg28)

Bur*_*lid 5

您的方法唯一必需的参数是name,并且它必须是第一个参数。之后,所有参数都有默认值,使它们成为可选的。如果您想覆盖默认值,只需将该值传递到:

foo = SomeClass('hello', rfI=10)
Run Code Online (Sandbox Code Playgroud)

另外,我可以建议使用有意义的名称或至少向您的方法添加文档字符串。您可能还想阅读Python 风格指南。