【【Python基础】lpthw - Exercise 44 继承与组合】教程文章相关的互联网学习教程文章

python – 如何在父级中更改其他模块中的继承变量?【代码】

我有一个文件a.py.avariable = Noneclass a():def method(self):global avariableavariable = 100print "variable is", avariable和一个文件b.pyfrom a import *class b(a,):def mymethod(self):a().method()print "avariable is " , avariableif __name__ == '__main__':b().mymethod()文件b从a导入所有内容,并且还从a继承.a的方法被调用,avariable变为100但是当我在b中打印avariable时,值为None.如何在类b中使用类变更的变量? 输...

在Python 2.7.x中继承【代码】

我做了这个代码:class Square(Quad):def __init__(self, linesValue):"""Calls the builder in quad (same)"""super(Square, self).__init__(linesValue)然后它说我必须发送类型作为第一个arg,所以我这样做:class Square(Quad):def __init__(self, linesValue):"""Calls the builder in quad (same)"""super(type(Square), self).__init__(linesValue)然后它说obj必须是类的子实例的实例,并且你可以看到它是Square(Quad).解决方法...

Python:子类可以重载继承的方法吗?【代码】

我正在Google App Engine中制作购物车应用.我有许多派生自基本处理程序的类:class BaseHandler(webapp.RequestHandler):def get(self, CSIN=None):self.body(CSIN)这是否意味着每个后代类的body()方法需要具有相同的参数?这很麻烦.只有一个后代实际使用该参数.那么当我添加新的args时呢?我需要经历并改变每一堂课吗?class Detail(BaseHandler):def body(self, CSIN):class MainPage(BaseHandler):def body(self, CSIN=None): #...

python – 使用外键继承抽象类时出错【代码】

我有以下代码用django编写from django.db import models from django.contrib.auth.models import Userclass AuditColumns(models.Model):created_at=models.DateField("Created at")created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by")updated_at=models.DateTimeField("Updated at")updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_u...

python元类继承问题【代码】

我有一个奇怪的元类问题.我正在使用元类来动态创建一个继承自另一个超类的“兄弟”类,并将其作为原始类的属性赋值.以下是最小化设置:class Meta(type): def __new__(cls, name, parents, dct):sdct = dct.copy()dct['sibling'] = type(name+'Sibling', (Mom,), sdct)return super().__new__(cls, name, (Dad,), dct)class Mom:def __init__(self):self.x = 3class Dad:def __init__(self):self.x = 4class Child(metaclass=Meta):...

python – Django继承模型的JSON序列化【代码】

我有以下Django模型class ConfigurationItem(models.Model):path = models.CharField('Path', max_length=1024)name = models.CharField('Name', max_length=1024, blank=True)description = models.CharField('Description', max_length=1024, blank=True)active = models.BooleanField('Active', default=True)is_leaf = models.BooleanField('Is a Leaf item', default=True)class Location(ConfigurationItem):address = model...

Python:如何区分继承的方法【代码】

新手Python问题.我有一个继承自几个类的类,一些特化类覆盖了基类中的一些方法.在某些情况下,我想调用非专业方法.这可能吗?如果是这样,语法是什么?class Base(object):def Foo(self):print "Base.Foo"def Bar(self):self.Foo() # Can I force this to call Base.Foo even if Foo has an override?class Mixin(object):def Foo(self):print "Mixin.Foo"class Composite(Mixin, Base):passx = Composite() x.Foo() # executes Mix...

python中类的继承【图】

# 在程序中,继承描述的是多个类之间的所属关系。 # 如果一个类A里面的属性和方法可以复用,则可以通过继承的方式,传递到类B里。 # 那么类A就是基类,也叫做父类;类B就是派生类,也叫做子类。 # 继承的作用:类B通过继承 能够使用类A的方法和属性;### 类A的定义: class A(object):pass#### 单继承:子类只继承一个父类 # 类B 只继承了 一个父类(类A) # 那么类B的定义: class B(A):pass#### 多继承:子类继承多个父类 # 类B 继...

python中的类与继承【代码】

Class 类的定义以及实例的建立 Python中,类通过 class 关键字定义。 例如最简单的一个类定义可以为:class Person(object):passPython 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。 例如上面的person类,我们可以创建很多实例:zhangsan=Person() lisi=Person() 实例的属性及方法 Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,即使类中并无定义,例如,给xiaoming这个...

python – 如何确定方法从哪个类继承?【代码】

是否有可能告诉我们从哪个类继承了一个方法.举个例子class A:def foo():pass class B(A):def boo(A):pass class C(B):def coo()pass class D(C):def doo()pass >>> dir (D) ['__doc__', '__module__', 'boo', 'coo', 'doo', 'foo']有什么方法可以告诉我从哪个类boo,coo,foo继承自哪个类?解决方法:使用inspect模块:class A:def foo(self):pass class B(A):def boo(Aself):pass class C(B):def coo(self):pass class D(C):def doo...

python – 可以继承@ staticmethod吗?【代码】

这个问题就是这样说的.我有一个抽象类,它在辅助函数中调用static方法,我希望子类只是定义staticmethod并运行它. 也许我可以使用getattr的东西?我应该使用@classmethod吗?解决方法:像这样的东西:class A(object):def func(self):self.f()class B(A):@staticmethoddef f():print "I'm B"测试:>>> a=x.A() >>> a.func() Traceback (most recent call last):File "<interactive input>", line 1, in <module>File "x.py", line 3, ...

python与组合中的多重继承

我对Java中的OOP及其习语有深刻的理解. 现在我在python中进行编码,而且我处于多重继承可能有用的情况(然而这可能是由于多年的java代码),我不愿意这样做而且我正在考虑使用组合而不是继承以避免与潜在的等同方法名称发生潜在冲突. 问题是,我是严格还是过于专注于这件事.或者在python中使用多重继承不仅是可能的,而且也是鼓励的. 谢谢你的时间 :)解决方法:“继承与组合”的问题归结为尝试解决可重用代码的问题.您不希望代码中包含重...

python面向对象之继承【代码】

1继承的格式 例: import random as a class Fish: def init(self): self.x=a.randint(0,10) self.y = a.randint(0, 10) def move(self): self.x-=1 print(“我的位置:”,self.x,self.y) class Shark(Fish): def init(self): Fish.init(self)#1 可调用未绑定的父类方法或者 2 super().init()推荐用这个便捷之处在于不用考虑继承哪个父类而是由子类的括号决定的 self.hungry=FutureWarning #由于子类父类相同方法名,子类就把父...

python – 将元组作为列表继承【代码】

我只是在编写一个程序,其中有一个继承自元组的类.但是,当我将参数作为列表传递时,它仍然有效.这是我的一些代码:class Board(tuple): def __init__(self, tup):print(type(tup))super().__init__()board = Board([[Cell(False) for i in range(10)] for j in range(10)]) print(type(board))然后该程序输出:<class 'list'> <class '__main__.Board'>我的问题如下:当我说我会传递一个元组时,为什么Python让我传递一个列表作为参...

Python:强制装饰器继承?【代码】

我正在使用相当大的OOP代码库,我想注入一些跟踪/日志记录.最简单的方法是在某些基类上引入围绕某些方法的装饰器,但遗憾的是装饰器不会被继承. 我确实尝试过以下内容:def trace(fn):def wrapper(instance, *args, **kwargs):result = fn(instance, *args, **kwargs)# trace logic...return resultreturn wrapperclass BaseClass(object):def __init__(self, ...):...self.__call__ = trace(self.__call__) # line added to end of...

组合 - 相关标签