在Python中,当您在类的构造函数中使用super()
时,您不能在super()
调用周围使用try
块。这是因为super()
是一个特殊的对象,用于调用父类的方法,而不是执行一个独立的代码块。
当您使用super()
时,您实际上是在调用父类的构造函数。因此,如果您在super()
调用周围使用try
块,那么您实际上是在尝试捕获父类构造函数的异常。然而,由于父类构造函数是由Python解释器自动调用的,因此您无法在调用父类构造函数时添加异常处理。
如果您需要在类的构造函数中处理异常,您应该将异常处理放在构造函数内部的其他代码块中,而不是在super()
调用周围。例如:
class MyClass(ParentClass):
def __init__(self, arg1, arg2):
super().__init__(arg1)
try:
self.arg2 = arg2
except Exception as e:
print(f"Error: {e}")
在这个例子中,异常处理被放在了super()
调用之后,这样可以确保父类的构造函数被正确调用,而异常处理则可以捕获在子类构造函数中发生的错误。
领取专属 10元无门槛券
手把手带您无忧上云