栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

对象的__init __()方法在python中做什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对象的__init __()方法在python中做什么?

简短的答案是object . init

()方法不执行任何操作,只是检查是否已传入任何参数。有关详细信息,请参见源。

Service 实例上调用时,
super() 调用将委派给object
. init (),并且不会发生任何事情。

但是,当调用 Service 子类的实例时,事情会变得更加有趣。该 超() 调用有可能委托给一些类以外 的对象 ,一类是实例的父但不是家长
服务
。有关它如何工作以及为什么有用的详细信息,请参阅博客文章Python的“超级被认为是超级”!

下面的例子(有点做作)所示的一个子类如何 服务 可能会导致 超级 呼叫 服务 被定向到另一个名为类 颜色

class Service(object):    def __init__(self, host, binary, topic, manager, report_interval=None,  periodic_interval=None, *args, **kwargs):        print 'Initializing Service'        super(Service, self).__init__(*args, **kwargs)class Color(object):    def __init__(self, color='red', **kwargs):        print 'Initializing Color'        self.color = color        super(Color, self).__init__(**kwargs)class ColoredService(Service, Color):    def __init__(self, *args, **kwds):        print 'Initializing Colored Service'        super(ColoredService, self).__init__(*args, **kwds)c = ColoredService('host', 'bin', 'top', 'mgr', 'ivl', color='blue')

在示例中,初始化按以下顺序进行:

  1. 初始化有色服务
  2. 初始化服务
  3. 初始化颜色
  4. 初始化对象-除了参数检查外什么也不做


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号