gpt4 book ai didi

python - 我怎样才能简单地将参数传递给子类中的父构造函数?

转载 作者:太空狗 更新时间:2023-10-30 00:31:55 25 4
gpt4 key购买 nike

我想用 Python 设计一些派生类,但不知道如何在没有太多努力和代码的情况下使它变得非常简单。

让我解释一下,我有以下类(class):

class Page(object):
def __init__(self, name):
self.name = name

我想导出一些 child :

class PageWithImage(Page):
def __init__(self, name, image):
# Need I do this boring code? - how to replace it?
super(PageWithImage, self).__init__(name = name)
self.image = image

如何跳过为调用 super 方法重写整个变量列表,如 name = name? (因为可以有很多这样的变量)

如何让它更具可读性? (更少的代码通常更具可读性)

我不喜欢我写的代码 - 因为自动完成不适用于此代码:

class PageWithImage(Page):
def __init__(self, *args, **kwrds):
# Need I do this boring code? - how to replace it?
super(PageWithImage, self).__init__(*args, **kwrds)
self.image = image

最佳答案

我认为您的代码完全损坏或未经测试(缩进错误,语法错误),因为它当前不会运行,也许您应该编辑。

但是如果你想简化你的“ super 调用”:

class PageWithImage(Page):
def __init__(self, *args, **kwargs):
super(PageWithImage, self).__init__(*args, **kwargs)

它将接受所有参数和关键字参数(如果不需要关键字参数,请删除 **kwargs)。

是的,更少的代码通常更具可读性,但情况并非总是如此,列表理解、使用 *args 和 **kwargs 的复杂函数、lambda 等...有时可能晦涩开发人员即使他们保存了 +20 个字符

因此,如果参数的数量很容易达到 ~10,您应该尝试重新设计或将它们塞入字典或列表中,具体取决于这些参数的性质。

关于python - 我怎样才能简单地将参数传递给子类中的父构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399131/

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