zoukankan      html  css  js  c++  java
  • python之路-day17-类与类之间的关系

    一、昨日内容回顾

      成员:

        变量

          1、实例变量。对象.xxx  self.属性 = 值

          2、变量名。 类名.变量  直接写在类中的变量  可以通过对象去访问类变量。不能修改

      方法

          1、实例方法

            def 方法(self):

              pass

            用对象去调用实例方法

          2、类方法

            @classmethod

            def 方法(cls):

              pass

          3、静态方法

            @staticmethod

            def  方法():

              pass

      属性

        可以把方法转换成属性

        @property

        def 属性(self):

          return ""   

        对象.属性

     

      私有:

        用双下划线做前缀,私有的内容只能在本类中访问。

    二、类与类之间的关系
    在面向对象的世界中,类与类中存在以下关系:
    1、依赖关系:我用着你,但是你不属于我,这种关系是最弱的

    2、关联关系:两种事物必须是关联的,但是在某些情况下是可以更改和更换的
    3、组合关系:属于关联关系中的一种特例,写法上差不多。组合关系比聚合还要紧密
    比如人的大脑,心脏,各个器官组合成一个人,缺一不可
    4、聚合关系: 属于关联关系中的一种特例,侧重点是xxx和xxx聚合成xxx。各自有各自
    的声明周期。比如电脑。电脑里有CPU,硬盘,内存等等。电脑系统挂了,cpu还是好的
    5、继承关系: x是⼀种y, 那x就可以继承y. 这时理解层⾯上的. 如果上升到代码层⾯.
    我们可以这样认为. ⼦类在不影响⽗类的程序运⾏的基础上对⽗类进⾏的扩充和扩展.
    这⾥.我们可以把⽗类被称为超类或者基类. ⼦类被称为派⽣类.
    结论:self就是你访问方法的那个对象。先找自己,然后再找父类。

    三、类中的特殊成员
    什么是特殊成员呢?__init__() 就是一个特殊的成员,说白了。带双下滑线的那一坨。这些
    方法在特殊的场景的时候会被自动执行。比如:
    1、类名() 会自动执行 __init__()
    2、对象()会自动执行__call__()
    3、对象[key] 会自动执行__getitem__()
    4、对象[key] = value 会自动执行__setitem__()
    5、del 对象[key] 会自动执行 __delitem__()
    6、对象+对象 会自动执行__delitem__()
    7、with 对象 as 变量 会自动执行__enter__ 和 __exit__
    8、打印对象的时候,会自动执行__str__
    9、干掉可哈希 __hash__ == None 对象就不可哈希了
  • 相关阅读:
    括号序列
    NOI剑客决斗
    洛谷 P1896 [SCOI2005]互不侵犯King
    codevs贪吃的九头龙
    ie6绝对定位的块会被select元素遮挡的解决方案
    Normalize.css与Reset CSS:定义浏览器统一的默认样式
    IE6中PNG图片背景无法透明显示的最佳解决方案
    关于ie6中绝对定位或浮动的div中既有向左float也有向右float时候如何让外层div自适应宽度的解决方案--
    [Z]关于html中的条件注释
    [z]IE6各种不兼容问题
  • 原文地址:https://www.cnblogs.com/alvin-jie/p/9936021.html
Copyright © 2011-2022 走看看