面向对象
BOBO_GO
每天进步多一点
展开
-
python中的__new__(cls)以及单例模式
1、new(cls)方法new_(cls)必须要有一个参数cls,代表着要实例化的类,而且必须要有返回值,返回实例化出来的实例对象.new(cls)和__init__(self)的区别:init(self)有一个参数self,就是这个__new__(cls)返回来的实例,init(self)可以在__new__(cls)的基础上进行其他一些初始化的操作,而且不需要返回值。new(cls)好...原创 2019-11-27 22:34:11 · 1039 阅读 · 0 评论 -
文档测试doctest
def fact(n): ''' Calculate 1*2*...*n >>> fact(1) 1 >>> fact(10) 3628800 >>> fact(-1) Traceback (most recent call last): ''' if n...原创 2019-06-27 00:15:08 · 339 阅读 · 0 评论 -
反射
#反射 *****# name = 'alex'# 'name'class Teacher: dic = {'查看学生信息':'show_student','查看讲师信息':'show_teacher'} def show_student(self): print('show_student') def show_teacher(self): ...原创 2019-03-13 13:26:17 · 99 阅读 · 0 评论 -
类方法&静态方法
# 类方法class Goods: __discount = 0.8 def __init__(self,name,price): self.name = name self.__price = price @property def price(self): return self.__price * Goods....原创 2019-03-11 17:02:21 · 95 阅读 · 0 评论 -
继承
# class A(object):pass # 父类,基类,超类# class B:pass # 父类,基类,超类# class A_son(A,B):pass # 子类,派生类# class AB_son(A):pass # 子类,派生类# 一个类 可以被多个类继承# 一个类 可以继承多个父类 —— python里# print(A_son.__bases__)# pr...原创 2019-02-26 16:16:13 · 68 阅读 · 0 评论 -
多态/封装
多态 # 多态 python 天生支持多态# def func(int num,str name):# pass## func('alex',2)# class Payment:pass# class Alipay():# def pay(self,money):# print('已经用支付宝支付了%s元' % money)## cl...原创 2019-03-01 19:59:41 · 98 阅读 · 0 评论 -
接口类/抽象类
# java : 面向对象编程# 设计模式 —— 接口# 接口类 : python原生不支持# 抽象类 : python原生支持的from abc import abstractmethod,ABCMetaclass Payment(metaclass=ABCMeta): # 元类 默认的元类 type @abstractmethod def pay(self,mo...原创 2019-03-01 19:58:17 · 72 阅读 · 0 评论 -
组合练习
# 面向对象的三大特性 : 继承 多态 封装# 组合# 人狗大战class Dog: def __init__(self,name,aggr,hp,kind): self.name = name self.aggr = aggr self.hp = hp self.kind = kind def bite(s...转载 2019-02-25 14:02:00 · 132 阅读 · 0 评论 -
初始面向对象
class Person: # 类名 country = 'China' # 创造了一个只要是这个类就一定有的属性 # 类属性 静态属性 def __init__(self,*args): # 初始化方法,self是对象,是一个必须传的参数 # sel...原创 2019-02-19 14:40:00 · 106 阅读 · 0 评论 -
超继承super()
super()super() 函数是用于调用父类(超类)的一个方法。super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。super(type[, object-or-type])参数type -- 类。...原创 2018-12-28 10:35:39 · 550 阅读 · 0 评论