繁体   English   中英

Python超类__init __()?

[英]Python super class __init__()?

class Fetcher:
    def __init__(self):
        self.opener = urllib.opener()
    def query(self, something):
        self.opener.open(something)

class Person (Fetcher):
    def __init__(self):
         super().__init__()
         super().function()
    def fetch(self):
        super().query()

如何重写Fetcher查询方法以跳过Fetcher。 初始化每个人以获得self.opener? 甚至我的模式是错误的? 如果可以,那么内存呢?

在初始化子类时,您自然会调用超类的__init__ 但是,可以通过使每个实例成为超类的class属性来避免为每个实例定义新的opener对象:

class Fetcher:
    opener = urllib.opener()
    def __init__(self):
        pass

    def query(self, something):
        self.opener.open(something)

class Person (Fetcher):
    def __init__(self):
        super().__init__()
        super().function()

    def fetch(self):
        super().query()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM