所以我在PyQt5中编写程序并使用QObject类。这是基本程序。
docker ps
但是我收到了这个错误:
enum Match {
Regex,
Wildcard,
ContainsString,
}
// Don't: This way, Enumerate() can be called in a way
// which does not make sense:
IEnumerable<string> Enumerate(string searchPattern = null,
Match match = Match.Regex,
SearchOption searchOption = SearchOption.TopDirectoryOnly);
// Better: Provide only overloads which cannot be mis-used:
IEnumerable<string> Enumerate(SearchOption searchOption = SearchOption.TopDirectoryOnly);
IEnumerable<string> Enumerate(string searchPattern, Match match,
SearchOption searchOption = SearchOption.TopDirectoryOnly);
我似乎无法找到问题的原因。是不是python子类无法访问它的父级属性?
答案 0 :(得分:3)
您获得的错误是由于您传递给super
的参数。在Python 2中,它需要2个参数:第一个参数是当前类(Object2
),第二个参数是当前实例(self
)。
问题是您已通过父类而不是当前类。
所以你想要:
class Object2(Object):
def __init__(self):
super(Object2, self).__init__() # Current class: Object2
self.field.append(1)
在Python 3中,不再需要将这些参数传递给super
。所以你会这样做:
class Object2(Object):
def __init__(self):
super().__init__()
self.field.append(1)
另见:
https://stackoverflow.com/a/5066411/7220776
Python 2文档:https://docs.python.org/2/library/functions.html#super
Python 3文档:https://docs.python.org/3/library/functions.html#super