DAY15 Python基础:operate class 2018-06-28

01-polymorphism 多态

02-operator overload 运算符重载

03-multiple inheritance 多继承

04-object memory management 对象的内存管理

05-the application of package 包的应用


01-polymorphism 多态

多态:就是一个事物有多种形态。继承就会产生多态
类的多态:通过过继承,同一个方法可以有多种实现

class Animal:
    def shout(self):
        print('嗷嗷叫!')


class Cat(Animal):
    def shout(self):
        print('喵喵叫!')


class Dog(Animal):
    def shout(self):
        print('汪汪叫!')


animal1 = Animal()
animal1.shout()

cat1 = Cat()
cat1.shout()

dog1 = Dog()
dog1.shout()

02-operator overload 运算符重载

需要对象进行运算操作的时候,进行运算符重载
类中可以通过实现相应的魔法方法,来实现对象的比较运算(>、<)和加减运算(+、-)
实现后就可以通过运算符'>'和'<'来判断对象的大小。通过运算符'+''-'来求两个对象的和与差

怎么重载

> -->__gt__
< -->__lt__
+ -->__add__
- -->__sub__

class Student:

    def __init__(self, name='', age=0, score=0):
        self.name = name
        self.age= age
        self.score = score

    # 重载'>'符号
    # 对象1(self)>对象2(other)
    def __gt__(self, other):
            # 怎么实现就看怎么判断大于的
        return self.age > other.age

    # 重载'<'符号
    def __lt__(self, other):
        return self.score < other.score

说明:如果大于比较和小于比较的内容是一样的,只需要重载其中一个符号就可以了

    # 重载'+'
    def __add__(self, other):
        return self.score + other.score


    #重载'-'
    def __sub__(self, other):
        return self.score - other.score
stu1 = Student('小明', 18, 90)
stu2 = Student('小花', 20, 80)

print(stu1 < stu2)
print(stu1>stu2)
print(stu1 + stu2)
print(stu1 - stu2)

03-multiple inheritance 多继承

**python支持多继承

class Animal:
    def __init__(self, age=0, name=''):
        self.age = age
        self.name = name


class Fly:
    def fly(self):
        print('飞起来')

Bird类同时继承Animal类和Fly类。同时拥有这两个类的属性和方法

class Bird(Animal, Fly):
    pass


b1 = Bird()
print(b1.name)
b1.fly()

注意: 实际开发中,不到万不得已不建议使用多继承

04-object memory management 对象的内存管理

对象值是存在堆中,python自动去回收的

掌握,对象到底什么时候才会被销毁(回收)

栈中内容是系统自动创建自动销毁的,不需要管理。平时说的内存管理指的是对堆中的内存的管理;
python中能够存到堆里面的数据,全是对象

python中管理内存的机制:
python是通过引用计数来管理内存的,就看一个对象的引用计数的值是否为0,为0就销毁;
让一个变量存储对象的地址,那么这个变量就是对象的一个引用;如果变量存别的值或者删除这个变量,都会让这个引用消失

应用:如果想要对象提前被销毁,就删除其所有的引用。

class Person:

    def __init__(self, name='', age=0, scores=[]):
        self.name = name
        self.age = age
        self.scores = scores


# p1是一个变量,变量存的是对象的地址; 变量p1本身是在栈里面的
# Person()返回值才是对象
p1 = Person()
p2 = p1
lis1 = [p1]
dict1 = {'aaa': p1}

p1 =10
del p2

05-the application of package 包的应用

函数 ---> 对实现功能的代码的封装
类 ---> 对属性和方法进行封装
模块 ---> 对多个函数或者多个类进行封装
包 ---> 对多个模块进行封装

包的创建:pycharm新建file里的python package
举例:对时间操作的相关功能
--> 1.日期对相应的时间(年月日 -> 获取当天的时间\获取指定哪一天对应的星期\计算哪一年是闰年)
----> 2.时分秒 (秒钟/计算小时数/分数/时间相加等)
----> 3.时间戳 (时间转换、时间加密)

通过from--import 和 import导入包的内容

from my_time import my_date
my_date.get_date()


import my_time
my_time.my_date.get_date()
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,183评论 1 44
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,096评论 1 32
  • 三重:代码、底层内存、源码 第一阶段:开发常用JavaSE基础、IDE、Maven、Gradle、SVN、Git、...
    guodd369阅读 16,494评论 1 44
  • 作为瑜伽师必须具备的素质,敏捷和灵活的思维力,敏锐的观察力,极强的记忆力。 需要记忆的东西太多,它们像一颗颗撒在地...
    悦心liuhaiyan阅读 573评论 0 2
  • 初冬的第一场雪,带着纯白的梦幻,飘洒在身上,轻抚着脸颊,凉凉的。 忙碌的加班过后,同事担心天黑路滑,找来一辆顺风车...
    行走的灯阅读 296评论 0 1