面向对对象

类名,首字母大写  class  Tiger:

1-类/实例

    1-类:

        1-现实不存在--抽象的概念--人类--鸟类

        2-一类具有相同特征的事物的统称!

    2-类里面有

        1-静态---属性(特征)---变量

        2-动态---方法(行为)---函数

2-实例化操作:        

    1-类里面的变量--属性

    2-类里面的函数--方法

    3-创建实例 t1 = Tiger()   

3-静态属性和实例属性

    1-静态属性:

        1-也叫类属性  class tige:  classname="tigeniu"

        2-它属于整个类的  ===描述类的属性,, 所有对象共有的且不变的一些特征定义为静态属性,

        3-用法:1-类.属性    2-实例.属性

    2-实例属性:[抽出最为属性的特征,一般都是此项目执行中有变动的特征]

        1-这个属性是  那个实例的,不属于整个类---其他实例不能共享   

        2-定义在 初始化方法 __init__ 里 ,每个事队形都不同的属性【体重,年龄,身高。。。。。】

        3-一般在创建实例的时候就给定

        4-只要创建实例--def __init__(self):初始化方法肯定会调用

        5-self 只是代表词,并不是关键字--可以替换,但不建议替换!不能缺省

        6-id(self)

        7-实例化属性---   实例.属性

        8- self  是指这个实例化的对象本身

4- 对象方法:

1-静态方法

需要修饰符,修饰符只能修饰最近的一个静态方法,如果有多个静态方法,就要用多个修饰符,一对一

@staticmethod

def staic-ror():

print('wow~~~')

2-实例方法

1-每个具体实例相关的方法

2-如果代码中的实例方法不访问任何的实例属性,一般建议实现为静态方法

3-初始化方法是一个实例方法【实例化对象之后执行】

4-一般实例方法都会访问self

def tellweight(self);print('my weight:'.format(self.weight))

注释:

如何判断一定静态方法和实例方法:

如果方法涉及到实例的属性,则定义为实例方法,否则就定义为静态方法

7-对象的组合

一个对象中包含着另一个对对象【一个实例中包含另一个实例】

class Room :

def __init__(self, innum, inanimal):

self.num = innum

self.animal = inanimal

t1 = tiger()

room = Room(1, t1)

room.animal.rorl()

    from random  import randint

    randint(0,2)--取 0 1 2 闭区间

8-时间处理:

    1- import time

       time.time()---单位是s 秒   从1970算起

9-继承

    1-继承关系可以是多个父类

    2-重写--在父类跟子类之间的一个多态的体现!

    3-在重写情况下,调用父类的方法

        super(SouTiger,s1).roar()

        super(子类类名,子类的实例名).roar()

    4- __name    私有属性

注意事项:

    1- 如果子类里面没有def __init__方法,子类会自动调用父类的__init__

    2- 如果子类里面有def __init__方法,子类需要手动调用  父类.__init__

        super(__int__)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容