gpt4 book ai didi

python - 在 python 中,super() 总是在方法中首先被调用。是否存在应该稍后调用的情况?

转载 作者:IT老高 更新时间:2023-10-28 22:18:55 26 4
gpt4 key购买 nike

有没有在调用 super() 之前需要做一些处理的情况?

这是一个人为的例子。有更好的例子吗?这被认为是pythonic吗?

class Base(object):
def __init__(self, name):
print "Base %s created" % name
self._name = name

class UpperBase(A):
""" Similar to base but the name is in uppercase. """
def __init__(self, name):
name = name.upper()
super(UpperBase, self).__init__(name)

最佳答案

有时您需要在调用 super() 之前验证参数:

class UpperBase(Base):
def __init__(self, name):
if not name_valid(name):
raise ValueError()
super(UpperBase, self).__init__(name)

我不明白为什么这不是pythonic,因为它是最简单的方法,而且很简单。另外,请阅读@JHSaunders 的评论,他说得很好。

关于python - 在 python 中,super() 总是在方法中首先被调用。是否存在应该稍后调用的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634221/

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