文档章节

python 面向对象构造函数和析构函数

明月知心
 明月知心
发布于 2016/11/23 23:24
字数 312
阅读 33
收藏 1
点赞 0
评论 0

__init__(self) 初始化一个函数,构造一个实例对象

__del__ (self)删除这个对象,永远在最后执行

__call__(self) 当执行对象()时会调用该方法

class foo:
    def __init__(self):
        pass
    def __del__(self):           #永远最后执行
        print('销毁了')
    def __call__(self):
        print("call方法")
f1=foo()
f1()                #相当于执行 f1.__call__() 一般在开启服务时使用
f1.__call__()

类的继承和调用父类构造函数方法

必须出现在子类构造方法内

  • 父类.__init__(self)                      #叫做 经典类或基类
  • class 父类(object) 
    super(子类,self).__init__()          #叫做 新类 或派生类

经典类(基类)的继承

class Father:                       #经典类继承
    def __init__(self):
        print('Father的构造函数')
    def good(self):
        print('艰苦朴素')
class Son(Father):                   #继承父类和父类的构造函数
    def __init__(self):
        print('争强好胜')
        Father.__init__(self)        #继承父类的构造函数
son=Son()
son.good()                           #继承父类的函数

新类(派生类)的继承

#调用派生类的构造方法
class Father(object):                      
    def __init__(self):
        print('Father的构造函数')
class Son(Father):                   #继承父类和父类的构造函数
    def __init__(self):
        print('争强好胜')
        super(Son,self)__init__()    ##调用派生类的构造方法

 

© 著作权归作者所有

共有 人打赏支持
明月知心
粉丝 5
博文 155
码字总数 70269
作品 0
武汉
程序员
Never Call Virtual Functions during Constructio...

代码 1. java class Bird { public Bird() {show();} public void show() {System.out.println("hey, I'm a bird.");}} class Eagle extends Bird {private String name = "littleEgale"; pu......

coda
2011/11/11
0
0
python 学习笔记(摘自《Python基础教程第2版》)

这里有一篇很详细的, http://www.worldhello.net/doc/python/python.mm.htm 以下是我的笔记 尽量使用 import, 而不使用 from xx import xx 每个包必须包含一个名为 init.py 的文件,以区分正常...

sailtseng
2012/06/07
0
2
zg手册 之 python2.7.7源码分析(1)-- python中的对象

源代码主要目录结构 Demo: python 的示例程序 Doc: 文档 Grammar: 用BNF的语法定义了Python的全部语法,提供给解析器使用 Include: 头文件,在用c/c++编写扩展模块时使用 Lib: Python自...

东昕
2014/07/08
0
0
12道必会的Python面试题,附详细讲解

无论是应聘Python方向的web开发,还是爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!小编挑了一些Python的基础面试题,看看你能不能的答上来,也许面试的同学用的着!...

诸葛玥
06/16
0
0
python基础---面向对象高级

面向对象高级 isinstance(obj,cls) 检查obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) 输出:True issubclass(sub,super) 检查sub类是否是 supe......

迟到的栋子
07/01
0
0
Python3 与 C# 面向对象之~封装

最新彩版:https://www.cnblogs.com/dotnetcrazy/p/9202988.html 在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master 在线预览:http://github.lesschina.com/python/base/oop/1......

毒逆天
06/20
0
0
python初体验(2)——面向对象篇

在学习python的面向对象时,我始终参照的是c++的面向对象机制。相对而言,python的面向对象确实更简单一些。 基础: 整数也被作为对象。前面就看到过,说所有的东西都是对象,包括函数。 属于...

晨曦之光
2012/06/06
72
0
Cocos2d-x 程序是如何开始运行与结束的

怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个 SceneHelloWorldScene,然后在 HelloWorldScene 里面写相关逻辑代码,添加我们...

欧阳俊文
2013/09/26
0
1
为什么python里要 if __name__ == ‘__main__’:

尽管python允许你像shell脚本一样,把大段的代码堆积着写,但是,很多python入门的书,都会建议你把代码写成一个函数,然后在最后面统一调用,例如这样: 很多文章都会说这个是由于代码风格之...

赵西元
2013/07/12
0
0
绕开“陷阱“,阿里专家带你深入理解C++对象模型的特殊之处

摘要:本文介绍了C++对象模型的特殊之处,包括与C兼容的朴素模型,以及能支持多态的虚表模型,同时还带大家了解了构造函数与析构函数相关的一些特性与陷阱。这些内容能够帮助大家更好地学习和...

nirvanalucky
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
31分钟前
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
48分钟前
28
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
54分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
5
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部