【Python中super关键字用法实例分析】教程文章相关的互联网学习教程文章

python-super().method()和self.method()有什么区别【代码】

当我们从父类继承某些东西时,为什么使用super().method()和self.method()有什么区别,为什么要使用一个而不是另一个呢? 我唯一想到的是,使用静态方法显然无法调用self.method().至于其他一切,我无法提出使用super()的理由. 当有人选择另一个问题时,有人可以提出一个虚拟的例子,并解释原因,还是仅仅是常规的事情?解决方法:selfself,通常用作类的实例方法的第一个参数,它始终表示类的调用对象/实例.super()super()引用父类的对象.它...

使用super()时未调用Python多继承构造函数【代码】

考虑以下代码:class A(object):def __init__(self):pass class B(object):def __init__(self):self.something = 'blue'def get_something(self):return self.something class C(A,B):def __init__(self):super().__init__()print(self.get_something())然后执行:c = C()结果是这样的:AttributeError: 'C' object has no attribute 'something'我想发生这种情况是由于在使用super()时未调用B的构造函数.有没有办法使用Python 3实...

为什么concurrent.futures.ProcessPoolExecutor和multiprocessing.pool.Pool在Python中使用super失败?【代码】

为什么使用concurrent.futures模块的以下Python代码永远挂起?import concurrent.futuresclass A:def f(self):print("called")class B(A):def f(self):executor = concurrent.futures.ProcessPoolExecutor(max_workers=2)executor.submit(super().f)if __name__ == "__main__":B().f()该调用引发了一个不可见的异常[Errno 24]太多打开的文件(要查看它,用print执行器替换行executor.submit(super().f)(executor.submit(super().f).e...

python – 在使用@property装饰器时在属性的setter方法中使用super()会引发AttributeError【代码】

尝试覆盖子类中的属性时,我对此行为有点困惑. 第一个示例设置两个类,Parent和Child. Parent继承自object,而Child继承自Parent.属性a使用属性装饰器定义.调用child.a的setter方法时,会引发AttributeError. 在第二个例子中,通过使用property()函数而不是装饰器,一切都按预期工作. 谁能解释为什么行为不同?此外,是的,我知道不需要Child中的__init__定义. 示例1 – 使用@propertyclass Parent(object):def __init__(self):self._a = ...

Python多重继承:在所有上调用super【代码】

我有以下两个超类:class Parent1(object):def on_start(self):print('do something')class Parent2(object):def on_start(self):print('do something else')我希望有一个继承的子类可以为父母双方打电话.class Child(Parent1, Parent2):def on_start(self):# super call on both parents什么是Pythonic的方法呢?谢谢.解决方法:执行摘要: Super只执行一个基于类层次结构__mro__的方法.如果要使用相同的名称执行多个方法,则需要编...

python – super()和直接调用超类之间的区别【代码】

在Python 2.7和3中,我使用以下方法来调用超类的函数:class C(B):def __init__(self):B.__init__(self)我看到也可以用super(B,self).__ init __()和python3 super().__ init __()替换B .__ init __(self). 这样做有什么优点或缺点吗?至少对我来说直接从B调用它更有意义,但也许有一个很好的理由,即super()只能在使用元类时使用(我通常会避免使用它).解决方法:对于单继承,super()只是引用基类型的一种更有趣的方式.这样,您可以使代码...

Python扩展 – 使用super()Python 3与Python 2【代码】

本来我想问this question,但后来我发现之前已经想过…… 谷歌搜索我发现这个extending configparser的例子.以下与Python 3一起使用:$python3 Python 3.2.3rc2 (default, Mar 21 2012, 06:59:51) [GCC 4.6.3] on linux2 >>> from configparser import SafeConfigParser >>> class AmritaConfigParser(SafeConfigParser): ... def __init_(self): ... super().__init__() ... >>> cfg = AmritaConfigParser()但不是P...

Fortran类似于python的super()?【代码】

在Fortran 2003/8中使用类,特别是扩展类型时:有没有python的super()函数的模拟,可以用来从扩展类型中调用的扩展类型调用方法?解决方法:是的,如果父类型不是抽象的.CALL object%ParentType%Binding(...)否则,您始终只需调用在父级中实现绑定的特定过程.

错误:AttributeError:在django中运行“python manage.py syncdb”时,’super’对象没有属性’db_type’【代码】

我正在开发一个django项目,我有两个数据库“mysql”和“neo4j”.我安装neo4django包并更改如下的setting.py: setting.pyDATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'mylifetime', 'USER': 'root','PASSWORD': 'mypassword','HOST': '', 'PORT': '',} } NEO4J_DATABASES = {'default' : {'HOST':'localhost','PORT':7474,'ENDPOINT':'/db/data'} }我的模特...

python – super(子类,类).__ new __(class)做什么?【代码】

在以下Singleton pattern的Python实现中:class Singleton(object):def __new__(cls):if not hasattr(cls, 'instance'):cls.instance = super(Singleton, cls).__new__(cls)return cls.instance线cls.instance = super(Singleton,cls).__ new __(cls)怎么办? 在这一行中,我不理解的是超级用法.我看到了super的用法(子类,实例),但在这里我们传递它(子类,类).它会(Singleton类,Singleton类)作为参数吗? Live example解决方法:super...

python – django-admin:当覆盖保存方法时,“super()参数1必须是type,而不是None”【代码】

好吧,另一个无用的错误导致我花了一个小时试图解决这个问题. 我有一个模型’CompanyProfile’,直到最近一直在工作,但现在当我尝试通过管理员保存模型时,我得到一个错误,似乎告诉我Object引用为null.我不知道如何排序. 我像往常一样做一切:def save(self, force_insert=False, force_update=False):super(CompanyProfile, self).save(force_insert, force_update)我重新启动了服务器,重新安装了django,清理了数据库,但仍然没有运气...

python-子类构造函数调用super().__init__()

【super作用】 如果子类(Puple)继承父类(Person)不做初始化,那么会自动继承父类(Person)属性name。如果子类(Puple_Init)继承父类(Person)做了初始化,且不调用super初始化父类构造函数,那么子类(Puple_Init)不会自动继承父类的属性(name)。如果子类(Puple_super)继承父类(Person)做了初始化,且调用了super初始化了父类的构造函数,那么子类(Puple_Super)也会继承父类的(name)属性。

Python基础教程:super()方法详解【代码】

原文链接:https://www.jianshu.com/u/8f2987e2f9fb一、单独调用父类的方法 需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。 使用方法1打印: 胖子老板,来包槟榔。那么先写一个胖子老板的父类,执行一下:''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' class FatFather(object):def __init__(se...

python运行出现TypeError: super() takes at least 1 argument (0 given)错误【代码】

在写继承子类的时候出现了TypeError: super() takes at least 1 argument (0 given)的error;源代码(python3中完美可运行): class Example(QWidget):def __init__(self):super().__init__()self.initUI() #界面绘制交给InitUi方法 原因是super().__init__()函数在python3中支持,是正确的,但是放到python2中会出现问题; 如果在python2想要继承父类的构造方法,则需要给super参数中传入参数:super(Example,self).__init__(); ...

Python super()方法

class Animal:def __init__(self,name):self._name = namedef run(self):print('动物会跑~~~')def sleep(self):print('动物睡觉~~~')@propertydef name(self):return self._name@name.setter def name(self,name):self._name = name# 父类中的所有方法都会被子类继承,包括特殊方法,也可以重写特殊方法 class Dog(Animal):def __init__(self,name,age):# 希望可以直接调用父类的__init__来初始化父类中定义的属性# super() 可以...

实例 - 相关标签