zoukankan      html  css  js  c++  java
  • 面向对象初始

    1、面对对象初始

    # 相同功能的函数进行归类
    # 面向对象的特点:
    # 1,它是将某些相关的功能(函数)封装到了一起。
    # 2, 你要站在上帝的角度,创建一个公共模板,然后通过模板创造不同的对象。
    # 类 :具有相同属性和技能的一类事实物。
    # 对象:类的具体表现。
    # 猫是一类, 隔壁老奶奶家养的阿花一个对象。
    # 狗是一类, 我们家养的一条哈士奇也是一个对象。

    2、类

    # 结构分析:类一般就分为两部分:变量,方法。
    # 思想分析:创建一个类 公共模板,通过创建个体对象 可以享有公共方法。

    示例:

    # 类名
    # 类名调用类中静态属性
    class Person:
        mind = '有思想'
        animal = '高级动物'
        language = '文字语言'  # 静态属性,静态变量 静态字段
    
        def work(self):  # 函数 方法,动态方法,动态属性。
            print('人类都会工作')
    
        def eat(self):
            print('人类都需要吃饭')
    # 方法一:__dict__  只能查询(不能增删改) 类中所有的静态属性,动态方法。
    print(Person.__dict__)
    print(Person.__dict__['mind'])

    Person.__dict__['mind'] = '无思想的'
    print(Person.__dict__)  #报错  TypeError: 'mappingproxy' object does not support item assignment
    # 方法二: 万能的点 .  可以查,可以改,可增,可删。
    print(Person.animal)  #查  高级动物
    
    Person.animal = '低级动物'  # 改  animal修改为低级动物
    Person.name = '有姓名'    # 增  为Person类增加一个name为有姓名
    
    print(Person.animal)
    print(Person.name)
    
    del Person.animal     # 删除
    print(Person.animal)  #查询发现animal没有了,报错type object 'Person' has no attribute 'animal'
    print(Person.__dict__)
    # 类名执行类中的动态方法 (一般不建议用类名执行,除非是特殊方法:类方法,静态方法)
    # Person.work('alex')

    
    

    3、对象

    # 类名+() 就是一个实例化对象的过程。
    p1 = Person() # 实例对象
    p2 = Person()
    print(p1, p2)

    class Game_Role:
        a1 = '英雄联盟'
        name = '太白'
        
        def __init__(self, name, sex, ad, hp):  # __init__方法,特殊方法: 给对象封装属性
            # print(self)
            # print(666)
            
            self.name = name
            self.sex = sex
            self.ad = ad
            self.hp = hp
        
        def fight(self, *args, **kwargs):
            pass
        
        def work(self):
            self.hobby = '大刀'    # 增加hobby为大刀
            print(self.__dict__)  #{'name': '盖伦', 'sex': 'man', 'ad': 30, 'hp': 500, 'hobby': '大刀'}
    gailun = Game_Role('盖伦', 'man', 30, 500) print(gailun.name) #盖伦
    # 实例化对象的过程有几步:
    # 1,实例化对象在内存中产生一个对象空间(内存地址)。
    # 2,自动执行 __init__方法并且将对象空间传给了self参数。
    # 3, 在 __init__方法中,给对象空间封装一些静态属性。

    # 对象调用类的静态属性 使用万能的点: .可以调用类中的静态属性。
    print(gailun.a1) #英雄联盟
    # 对象执行类中动态方法:
    gailun.work() # 此方法是对象调用执行类中的动态方法
    print(gailun) # 打印对象:<__main__.Game_Role object at 0x00000041912289E8>
    # self 约定俗成 self,类中的方法的第一个参数要设定为self,在对象调用方法时,会自动将对象空间传给self。
    工作中:类中的静态属性一般通过类名去调用或者改变;类中的动态方法一般通过对象去执行。
    gailun.fight('alex')  #把上面的参数可以传给alex
    gailun.work()  #对象执行类中动态方法
    # 对象查看自己空间的属性。
    # 查看全部:__dict__
    print(gailun.__dict__)
    # 查看某个对象自己的静态属性: 万能的. 增删改查。
    print(gailun.name)  #
    print(gailun.sex)   #
    gailun.name = 'GAIlun'  #
    print(gailun.name)
    gailun.hobby = '大刀'  #
    print(gailun.hobby)
    print(gailun.__dict__)

     




  • 相关阅读:
    linux环境变量
    linux make configure make
    摘自(http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html)
    linux eaccelerator
    linux du df ls
    linux phpize
    mysql 分页
    mysql 执行计划和慢日志记录
    mysql 添加/删除列(column)
    mysql 索引
  • 原文地址:https://www.cnblogs.com/wangkaiok/p/9950159.html
Copyright © 2011-2022 走看看