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

Python——继承

Python的继承是多继承机制,一个子类可以同时有多个直接父类;继承可以得到父类定义的方法,子类就可以复用父类的方法。 一、继承的语法 子类:实现继承的类。 父类(基类、超类):被继承的类。 子类继承父类是在定义子类时,将多个父类放在子类之后的圆括号内,如果定义类时,未指定这个类的直接父类,则默认继承object类,所以object类是所有类的父类(直接父类或者是间接父类)。 语法格式如下:class SubClass (SuperClassl ,...

python中类的封装与继承【代码】

封装 封装就是将统一类型的内容放置在一起,通过self去调用 class People():def __init__(self, name, age):# self是对象,name是属性,self.name就是将对象和属性封装在一起self.name = nameself.age = agedef run(self):print('%s is running...' % self.name)P1 = People(name='octopus', age='10') P1.run()继承 定义一个类,从现有的某个类进行继承 新的类,称为子类,扩展类(subclass),被继承的称为父类,基类,超类 (Basec...

python – 如何使用元类的多重继承?【代码】

我正在尝试使用注册表模式注册我使用Flask-RESTFUL定义的所有资源.from flask_restful import Resourceclass ResourceRegistry(type):REGISTRY = {}def __new__(cls, name, bases, attrs):new_cls = type.__new__(cls, name, bases, attrs)cls.REGISTRY[new_cls.__name__] = new_clsreturn new_cls@classmethoddef get_registry(cls):return dict(cls.REGISTRY)class BaseRegistered(object):__metaclass__ = ResourceRegistryclas...

python – Odoo 8.0 product_product继承扩展类【代码】

我迈出了第一步.我正在尝试像这样扩展产品模型类.from openerp.osv import osv,fields as fieldsclass product_product(osv.osv):_name = 'product.product'_inherit = 'product.product'_columns = {'products_ids':fields.one2many('product_application.version', 'version_id', string="Versions")}并得到以下错误File "/home/nano/ARCHIVOS/PycharmProjects/odoo/odoo/openerp/models.py", line 596, in _build_modeloriginal...

在python中以编程方式向类添加继承?【代码】

我可以让一个类继承Python中的“in-program”类吗? 继续我到目前为止所拥有的:base = list(cls.__bases__) base.insert(0, ClassToAdd ) base = tuple( base ) cls = type( cls.__name__, base, dict(cls.__dict__) )解决方法:这是一个例子,使用Greg Hewgill的建议:class Foo(object):def beep(self):print('Hi')class Bar(object):x=1 bar=Bar() # bar.beep() # AttributeError: 'Bar' object has no attribute 'beep'Bar=typ...

在python中使变量不可继承【代码】

有没有办法在python中使变量不可继承?如下例所示:B是A的子类,但我希望它具有自己的SIZE值. 如果B不覆盖SIZE,是否可以获得引发错误(在__init__或getsize()上)?class A:SIZE = 5def getsize(self): return self.SIZEclass B(A): pass编辑:…继承getsize()方法……?解决方法:如果你想绝对确保A的子类重写SIZE,你可以使用A的元类,当子类不覆盖它时会引发错误(注意A是一个新风格的类):class ClassWithSize(type):def __init__(cls...

使用Python重置NTFS文件夹的继承权限【代码】

我在NTFS分区(在Windows 2008上)上有很多文件夹,这些文件夹不会从父项继承权限. 我想重置它,以便它们包括那些父权限(相当于检查“高级安全设置”区域下的“包括此对象的父级的可继承权限”复选框). 由于我们在这里使用Python进行其他一些系统管理任务,如果可能的话我想用Python做(我知道如何在VBScript中做到这一点,但这不是一次性的脚本,而是定期运行,所以应该与我们的代码库的其余部分集成). 我一直在使用优秀的pywin32扩展和htt...

继承和扩展Python bytearray【代码】

我希望能够写入一个bytearray缓冲区并通过调用一个方法来清除它,所以我有一个如下所示的类:import structclass binary_buffer(bytearray):def __init__(self, message=""):self = messagedef write_ubyte(self, ubyte):self += struct.pack("=B", ubyte)return len(self)def clear(self):self = ""但是,调用clear()似乎根本不做任何事情.示例输出如下所示:>>> bb = binary_buffer('') >>> bb bytearray(b'') # As expected, the...

python – Numpy函数clobber我继承的数据类型【代码】

假设我有一个继承自numpy.ndarray的类ndarray_plus并添加了一些额外的功能.有时我将它传递给像np.sum这样的numpy函数,并按预期返回类型为ndarray_plus的对象. 其他时候,我通过增强对象返回numpy.ndarray对象的numpy函数,破坏额外的ndarray_plus属性中的信息.当有问题的numpy函数执行np.asarray而不是np.asanyarray时,通常会发生这种情况. 有没有办法防止这种情况发生?我无法进入numpy代码库并将np.asarray的所有实例更改为np.asan...

使用python抽象基类的惯用多重继承【代码】

简单来说,我想要的是一个带有一个或两个附加方法的元组. __new__或__init__不会被修改. 我想创建一个抽象基类,它是collections.abc.Sequence的子类.然后我想将它用于基本上是元组的子类.类图类似于:collections.abc.Sequence/ / / MyABC tuple\ /\ /\ /MyClass原因: > MyABC定义了一些自定义接口.它就在那里,所以第三方不会被迫继承MyClass.>性能...

python – 继承:返回其自身实例的基类方法【代码】

我的基类有一个返回自身实例的方法.当我编写我的子类时,有没有办法让这个实例成为我的子类而不是基类的实例,而不修改基类的代码或将整个基类方法重写到我的子类方法中? 示例:class A:def __init__(self,x):self.x = xdef add(self):self.x += 2def new(self,z):n = A(z)return nclass B(A):def __init__self():A.__init__(self,x)如果我这样做:a = B(10) b = a.new(4)然后b将是A的实例而不是B的实例,就像我想要的那样.在这个简单...

python中的条件类继承定义【代码】

我有一个基于linux的python应用程序,它使用pygtk和gtk.它有UI执行和命令行模式执行选项.在UI模式下,要创建主应用程序窗口,类定义是class ToolWindow(common.Singleton, gtk.Window):def __init__(self):gtk.Window.__init__(self,gtk.WINDOW_TOPLEVEL)我想要做的是,如果应用程序能够导入gtk和pygtk,那么只class ToolWindow应该继承common.Singleton和gtk.Window类,否则它应该只继承common.Singleton类. 最好的方法是什么?解决方法...

python – 通过C继承自定义PyObject【代码】

长期python程序员,第一次C扩展作家.无论如何,为了好玩,我正在尝试在C中为python创建链表模块.这是我的代码#include <python2.7/Python.h> #include <iostream>using namespace std;template <typename T> class LinkedList : public PyObject { private:struct ListNode {ListNode(T value, ListNode* next): value(value), next(next) {}T value;ListNode* next;};ListNode* head;public:LinkedList(T value): head(new ListNode(...

在Python中记录和继承记录器的配置【代码】

我来自SLF4J和Log4J,所以这可能是我没有得到Python中的日志记录工作原因的原因. 我有以下内容 —- logging.yamlversion: 1handlers:console:class: logging.StreamHandlerlevel: DEBUGstream: ext://sys.stderrformatter: simpleFormatterfile:class: logging.FileHandlerfilename: app.logmode: wlevel: DEBUGformatter: simpleFormatterformatters:simpleFormatter:#class: !!python/name:logging.Formatter#class: logging.Form...

python – 如何在从pb.Root继承的服务器中检测丢失的客户端连接?【代码】

例如,我有一个连接到服务器的客户端,具有以下内容:class MyClientFactory(pb.PBClientFactory, ReconnectingClientFactory):def __init__(self):pb.PBClientFactory.__init__(self)self.ipaddress = Nonedef clientConnectionMade(self, broker):log.msg('Started to connect.')pb.PBClientFactory.clientConnectionMade(self, broker)def buildProtocol(self, addr):log.msg('Connected to %s' % addr)return pb.PBClientFactory...

组合 - 相关标签