Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python2中,我是否可以在不带参数的情况下调用uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?_Python_Python 2.7_Init_Super_Superclass - Fatal编程技术网

在Python2中,我是否可以在不带参数的情况下调用uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?

在Python2中,我是否可以在不带参数的情况下调用uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?,python,python-2.7,init,super,superclass,Python,Python 2.7,Init,Super,Superclass,我正在用Python 2.7编程。在Ruby等其他语言中,在方法中可以调用super,这样就不需要指定调用super-super的参数。在super调用中省略参数,使用与调用给定方法相同的参数调用给定的super方法 下面是StackOverflow问题的一个示例: class-Foo def baz(str) 带'+str'的p'父级 结束 结束 类Bar

我正在用Python 2.7编程。在Ruby等其他语言中,在方法中可以调用
super
,这样就不需要指定调用
super
-
super
的参数。在
super
调用中省略参数,使用与调用给定方法相同的参数调用给定的super方法

下面是StackOverflow问题的一个示例:

class-Foo
def baz(str)
带'+str'的p'父级
结束
结束
类Bar'parent with test'\'child with test'
如您所见,
类中的方法
baz
包含调用
super
而无需任何参数,并且super类中的超级方法
baz
会使用相同的参数隐式调用作为子类
Bar

出于各种原因,这非常方便,虽然编程中的隐式行为显然有其缺点,在一个子类中有一个
\uuuuu init\uuuuu
方法,该方法在该子类中进行处理,然后通过
super
调用
\uuuuu init\uuuuu
,而不必知道超类中的
\uuuuu init\uuu
的参数,这是非常有用的

请帮忙,任何建议都会有用的。我一直在寻找答案,但找不到答案。我已经看到了许多关于StackOverflow的问题和答案,关于Python中的
\uuu init\uuu
super
,但是nonw关于调用
super
的语法是否不需要指定参数,并使用与在子类中调用的给定方法相同的参数来调用它

我试图做的与Python中的
try
中的
raise
非常相似,
除了
raise
构造之外:

试试看:
linux_交互()
除异常作为错误外:
记录器。严重(str(错误))
提升
在上面的代码块中,我捕获所有异常,将任何异常记录为严重异常,然后仅调用
raise
,不使用任何参数就抛出它。没有参数的
raise
调用语法会导致抛出名为
error
的变量中捕获的异常,并保留调用堆栈/堆栈跟踪。如果调用的是
raiseerror
,而不是
raise
,则
错误起源的堆栈跟踪将丢失

我在这里尝试做类似的事情,只需调用super,并使用与给定方法相同的参数调用super方法,而不需要知道它们是什么,也不需要指定它们——这会很方便,对吗


任何人都知道这是否可能,如果可能,Python 2.7中的语法是什么?

不,在Python中不能这样做
super()
只是从MRO中的另一个类中查找和绑定方法的一种方式,从那里它只是一个普通的函数调用,就像任何其他调用一样。编写一个包装函数,然后用装饰器应用它?不管怎样,您都必须硬编码当前类名。简短的回答是:不,您需要在Python 2中为
super
提供参数。据我所知,Python的
super
比Ruby关键字更为通用;它被设计为支持多重继承,Ruby不支持。不可能在定义当前类之前对其命名,因此还需要使用类装饰器和元类2<代码>检查。签名
在python2中不存在,我懒得去寻找后端口,还有3。即使在python3
\uuuu中,class\uuuuuuuuuuuuuuu>也不能在类范围内使用,只能在方法范围内使用,因此元类可能是唯一合理的方法。