• 面向对象


    1.面向对象

    #结构上理解:分两部份。

    class A:
        name = 'alex' #  静态属性,静态变量,静态字段。
        def func1(self):  # 函数,动态属性,方法。
            pass

    #函数vs面向对象:

    1.函数封装一个功能,面向对象封装多个相关的功能。

    2.面向对象抽象,他是一种理想,站在上帝的角度去理解与他。

    3.程序可扩展,对象都是一个个独立的,耦合性,差异性。

    2.类,对象

    类:具有相同属性或者功能的一类实物

    对象:是类的具体体现。

    3.类名,对象的使用

    #一个公共框架,一个公共模型。

    # class Person:
    #     walk_way = '直立行走'
    #     animal = '高级动物'
    #     language ='语言'
    #     def eat(self):
    #         print('该吃吃,该喝喝,啥事别往心里去')
    #     def work(self):
    #         print('人类都需要工作')

    类名:

    1.查看类中所有属性及方法__dict__

    # print(Person.__dict__)
    # print(Person.__dict__['language'])

    2.查看,(增删改)类中的某个,某些属性用万能的点(.)

    # print(Person.animal)  # 查
    # print(Person.language)

    3.改

    # Person.animal = '低级动物' # 改

    4.增

    # Person.name = 'alex'  # 增
    # print(Person.name)

    5.删

    # del Person.walk_way  # 删
    # print(Person.__dict__)

    #操作方法:一般不通过类名操作。

    对象:给对象封装属性的。

        def __init__(self,name,age,eye):  # 功能:给对象封装属性的。
            self.name1 = name
            self.age1 = age
            self.eye1 = eye

    实列化过程:

    class Person:
        animal = '高级动物'
        walk_way = '直立行走'
        language = '语言'
        def __init__(self,name,age,eye):  # 功能:给对象封装属性的。
            self.name1 = name
            self.age1 = age
            self.eye1 = eye
        def eat(self):
            # print(self)
            print('该吃吃,该喝喝,啥事别忘心里搁')
        def work(self):
            print('人类都需要工作。。。')
    # obj = Person('alex',1000,'小眼睛')  # 这个过程是一个实例化过程,他会实例化一个对象(他会在内存实例化一个对象空间)。
    # print(obj)
    # print(obj.name1)

    #实列化过程内部进行了三个阶段:

    1.在内存中开辟了一个对象空间

    2.自动执行类中的__init__方法,并且将对象空间自动传给self参数,其他参数手动传入。

    3.执行__init__方法 给对象空间封装相应的属性。

    #对象

    对象操作对象空间

    对象查看对象空间所有属性 __dict__

    对象操作对象的某个属性 增删改查 万能的点.

    # obj.sex = '男'  # 增
    # del obj.eye1  # 删
    # obj.eye1 = '大一点'  # 改
    # print(obj.name1)
    # print(obj.__dict__)

    对象操作类空间的属性 只能查

    对象操作类空间的方法

    print(obj)

    print(obj.eat())

    4.类名称空间,对象名称空间

    #公用模板,公共框架

    class GameRole:
        rule = '游戏规则'
        def __init__(self,area,nickname,hp,ad):
            self.area = area
            self.nickname = nickname
            self.hp = hp
            self.ad = ad
        def attack(self):
            print('谁施展了一个攻击')
        def pen(self):
            self.pen=10000
    gailun = GameRole('德玛西亚','草丛伦',1000,75)
    yasuo = GameRole('艾欧尼亚','托儿索',500,150)
    penzi = GameRole('中国','键盘侠',10,100)
    penzi.pen()
    print(penzi.__dict__)

    1.属性名 先从自己空间去找,没有此属性他会通过类对象指针从类去找, 类中找不到,会从父类去找。

    2.对象只能查看类中的属性,不能增删改类中的属性。、

    3.类不能调用对象的属性。

    4.同一个类实例化出来的对象之间是不能互相访问的。

    5.不同类实例化的对象有可能互相访问。

    6.给对象封装属性:__init__ 任意位置。

  • 相关阅读:
    软工实践个人总结
    第03组 每周小结 (3/3)
    第03组 每周小结 (2/3)
    第03组 每周小结(1/3)
    第03组 Beta冲刺 总结
    第03组 Beta冲刺 (5/5)
    第03组 Beta冲刺 (4/5)
    第03组 Beta冲刺 (3/5)
    第03组 Beta冲刺 (2/5)
    第03组 Beta冲刺 (1/5)
  • 原文地址:https://www.cnblogs.com/caoshitong/p/9526170.html
Copyright © 2020-2023  润新知