python 3.x 学习笔记10 (析构函数and继承)
2024-08-31 12:45:28
1.类变量的用途:
大家公用的属性,节省开销(内存)
2.析构函数
在实例释放和销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接和打开的临时文件
3.私有方法
两个下划线开头,声明该方法为私有方法,不能在类地外部调用。
4.私有属性
两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。
5.
继承的时候重写构造函数要先将父类的所有参数写一遍加上子类变量,然后调用父类,再添加子类的实例化变量。
6.
python2.x 经典类是按深度有先来继承的,新式类是按广度有先来继承的。
python3.x 经典类和新式类都是统一按广度优先来继承的。
练习
#父类1
class Person(object): #新式写法 def __init__(self,name,age):
#构造函数
self.name = name #实例化变量(静态属性) ,作用域为实例化本身
self.age = age
self.friends = [] def eat(self): # 类方法 功能(动态属性)
print('%s will eat something ! '%self.name) def run(self):
print('%s will runing !'%self.name) def sleep(self):
print('%s will sleep !'%self.name) #父类2
class Relation(object):
def make_friends(self,obj):
print('%s make friend with %s'% (self.name,obj.name))
self.friends.append(obj) #这里传的参数是obj,在这例题里 obj既是 w1 #子类
class Man(Person,Relation): #多继承
def __init__(self,name,age,money): #重写构造函数
#Person.__init__(self,name,age,money) #经典写法
super(Man,self).__init__(name,age) #新式写法,建议用这种写法
self.money = money def piao(self):
print('%s is piaoing .......'% self.name) #子类
class Woman(Person,Relation): #多继承
def piao(self):
print('%s is piaoing .......'% self.name) m1 = Man('张三',20,10) w1 = Woman('lili',21) m1.make_friends(w1)
print(m1.friends[0].name)
print(m1.friends[0].age) # m1.piao()
# m1.eat()
# m1.run()
# m1.sleep()
最新文章
- 使用mysqlslap对mysql进行压测,观察Azure虚拟机cpu使用率
- my_mosaic
- 开发android过程中eclipse闪退解决
- Python数据类型之列表
- Selenium IDE- 不同的浏览器
- JS单例设计模式
- 【数位DP】Hdu 2089:不要62
- 听同事讲 Bayesian statistics: Part 1 - Bayesian vs. Frequentist
- slidingmenu+fragment实现经常使用的側滑效果(包含Fragment状态的保存)
- HDU 1240——Asteroids!(三维BFS)POJ 2225——Asteroids
- 一次失败的刷题经历:[LeetCode]292之尼姆游戏(Nim Game)(转)
- HDU 3038 How Many Answers Are Wrong (并查集)---并查集看不出来系列-1
- PHP发送E-mail---新手教程
- POJ-2031 Building a Space Station---MST + 空间距离
- 原生wcPop.js消息提示框(移动端)、内含仿微信弹窗效果
- prometheus监控示例
- ORM版学员管理系统
- 20190404 Oracle忘记登陆密码
- <;转>;浏览器缓存机制
- JDK常用命令(三)jmap
热门文章
- oracle (9I/10G/11G)数据库日志挖掘(审计误操作)
- jQuery应用实例3:鼠标经过显示离开隐藏
- Python 之 入门须知
- 深入分析C++虚函数表
- 执行python manage.py makemigrations时报错TypeError: __init__() missing 1 required positional argument: &#39;on_delete&#39;
- systemd bug: bz1437114 core:execute: fix fork() fail handling in exec_spawn()
- 基于better-scroll封装一个上拉加载下拉刷新组件
- [USACO17JAN] Subsequence Reversal序列反转 (dfs+记忆化)
- v4l2程序实例
- HTML 编码规范