gpt4 book ai didi

python - 从 int 派生并在 python 类中使用关键字参数

转载 作者:行者123 更新时间:2023-12-01 04:34:27 24 4
gpt4 key购买 nike

我正在尝试实现一个设置类,该类应该保存我的应用程序的全局设置。我想从基类派生出应该保存实际设置值的类,可以是 int、str 等等......这看起来像:

class Setting:
def __init__(self):
pass


class SettingInt(Setting, int):
"""
An int setting.
"""
def __init__(self, val = 0, **kw):
int.__init__(self, val, **kw)
Setting.__init__(self)

但是当SettingInt用作

i = SettingInt(0, ul = 1)

我收到错误:

类型错误:“ul”是此函数的无效关键字参数

为什么?

最佳答案

您无法将 ul 作为关键字参数传递给 int,因为 int 不接受此类参数。您只需调用int.__init__(self, val)

尚不清楚您打算如何使用该参数,但无论它是什么,您都需要在自己的类中处理它,而不是将其传递给 int

此外,由于 int 是不可变的,因此覆盖 __init__ 将无法更改值。您需要覆盖 __new__ .

关于python - 从 int 派生并在 python 类中使用关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31974298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com