草庐IT

Super-Resolution

全部标签

python - 如何访问 Python 父类(super class)的属性,例如通过 __class__.__dict__?

如何获取python类的所有属性名称包括那些从父类(superclass)继承的属性?classA(object):defgetX(self):return"X"x=property(getX)a=A()a.x'X'classB(A):y=10b=B()b.x'X'a.__class__.__dict__.items()[('__module__','__main__'),('getX',),('__dict__',),('x',),('__weakref__',),('__doc__',None)]b.__class__.__dict__.items()[('y',10),('__m

python - 在多重继承中访问父类(super class)方法的更好方法

classAnimal(object):defeat(self):print("Ieatall")classC(object):defeat(self):print("Itooeat")classWolf(C,Animal):defeat(self):print("IamNonVeg")super(Wolf,self).eat()Animal.eat(self)w=Wolf()w.eat()我正在学习python中的多重继承,我想访问Animal和C方法eat从派生类使用super方法。默认调用super内部电话C类方法eat,但要打电话Animal我使用的类方法Animal.eat(

python - 将父类(super class)实例转换为子类实例

我有一个我无法触及的外部图书馆。这个库有一个函数genA(),它返回类A的实例。在我这边,我将类B定义为类A的子类。我想在我的项目中使用类B的实例,但该实例应该由genA()生成。是否有任何标准且简单的方法可以做到这一点?#IcannnottweakthesecodedefgenA():a=Areturn(a)classA:def__init__():self.a=1#---#codeinmysideclassB(A):def__init__():self.b=2a=genA()#likeacopy-constructor,doesn'twork#b=B(a)#Iwanttogetth

Python:为什么我不能在类里面使用 `super`?

为什么我不能使用super获取类的父类(superclass)的方法?例子:Python3.1.3>>>classA(object):...defmy_method(self):pass>>>classB(A):...defmy_method(self):pass>>>super(B).my_methodTraceback(mostrecentcalllast):File"",line1,insuper(B).my_methodAttributeError:'super'objecthasnoattribute'my_method'(当然这是一个微不足道的案例,我可以做A.my_met

python - 在从元类调用的类方法中调用 `super`.__new__

我有一个案例,我的类有一个自定义元类,它在创建它时调用类的类方法,比如:classMetaclass(type):def__new__(cls,name,bases,attrs):...new_class=super(Metaclass,cls).__new__(cls,name,bases,attrs)...new_class.get_fields()#dosomething...returnnew_classclassFooBar(object):__metaclass__=Metaclass@classmethoddefget_fields(cls):...(此类代码的示例在Ta

python - 在多重继承的情况下, super 方法如何在 python 中工作?

super方法在python中如何实际工作?在给定的代码中:classA(object):deftest(self):return'A'classB(A):deftest(self):return'B->'+super(B,self).test()classC(A):deftest(self):return'C'classD(B,C):passprintB().test()#B->AprintD().test()#B->C????#MROofclassesareasprint'mroofA',A.__mro__#[A,object]print'mroofB',B.__mro__#[B,

c++ - 我可以在 python 类中使用 C++ 类作为父类(super class)吗

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowcanIuseC++classinPython?我正在用python设计一个软件,但在用python实现它时遇到了一些内存问题,所以我计划用C++扩展我的软件。所以我在想我可以使用C++定义的类并在python中将它用作父类(superclass)并覆盖它的一些方法吗?

python - 在 `super()` 内使用 `__init_subclass__` 找不到父类的类方法

这个问题在这里已经有了答案:Whydoesaclassmethod'ssuperneedasecondargument?(1个回答)3年前关闭。我尝试从__init_subclass__中访问父级的类方法但是这似乎不起作用。假设以下示例代码:classFoo:def__init_subclass__(cls):print('init',cls,cls.__mro__)super(cls).foo()@classmethoddeffoo(cls):print('foo')classBar(Foo):pass产生以下异常:AttributeError:'super'objecthasnoa

python - 由于不在 TTY 中工作,无法在 Django 中创建 super 用户

我从djangoproject.com浏览了第一个django教程,在第2部分的开头,当我运行"pythonmanage.pycreatesuperuser"时创建super用户,我收到以下消息:SuperusercreationskippedduetonotrunninginaTTY.Youcanrun`manage.pycreatesuperuser`inyourprojecttocreateonemanually.当我在运行syncdb后继续创建super用户时,我得到了相同的消息。我正在为Windows7、Django1.7.1和Python2.7.8开发Eclipse。

python - super(type(self), self) 的快捷方式

我经常在重写子类中的方法时这样做:defmethod_x(self):x=super(type(self),self).method_x()[Someextracode]returnx我的问题是:super(type(self),self)有捷径吗? 最佳答案 不要那样做:如果super可以只使用type(self)作为它的第一个参数,那么它就不会被写成在第一名。您必须在此处传递实际类,而不是表达式,如果类已被子类化,表达式可能会发生变化。super的第一个参数需要是包含当前方法定义的类,因为您要告诉super在碱基列表中的何处开始