• 面向对象初识


    类:
    具有相同属性和技能的一类事物.
    对象:
    类的具体表现.
    class 关键字
    class 类名: (类名应该首字母大写)
    代码块.
    country = 'China' 第一部分:静态变量,静态字段

    def __init__(self,name,age): 第二部分:动态方法,函数,方法
    pass
    def func(self):
    pass
    类从结构上考虑就是分这两大部分.
    类名:
    #1,类名.__dict__
    #2,类名.country (类名.__dict__['country'] 不建议)
    类名.变量名 可以增删改查.
    #3,类名.func(111)
    对象:
    obj1 = 类名()
    1,在内存中创造了一个空的!对象空间.
    2,自动执行__init__(self),并且将空的对象空间传给self
    3,在__init__方法中,给空的对象空间封装一些属性,然后再将完善好的空间,返回给类名(),这个对象.
    # 1,对象查看自己空间的所有属性:
    obj.__dict__
    # 2,对象操作自己的属性. 万能的点.
    obj.属性名(增删改查.)
    # 3,对象可以查询类中的静态字段.
    obj.静态字段.
    # 4,对象执行类中的方法.
    obj.方法名()

    class Person:
        '''
        此类是构建人类
        '''
        level = '高级动物'
        mind = '有思想'
        language = '语言'
    
        def __init__(self):
            pass
        def work(self):
            print('开始工作了!!!!')
        def eat(self):
            pass
    
    类名
        1类名查看类中所有的变量(字段),方法(函数):
    print(Person.__dict__)
        2类名对静态变量(静态字段)进行操作  最好不要通过__dict__这个字典进行操作
            2.1通过类名.__dict__  不建议!!!通过这个方法
    print(Person.__dict__['mind']) # 可以查值
    Person.__dict__['create'] = '有创造力' #  不能增加值
    del Person.__dict__['mind']  # 不能删除值
    Person.__dict__['mind'] = '行尸走肉'  # 不能更改值
    print(Person.__dict__)
    小总结: 查询类里面所有的变量 Person.__dict__
            (增删改)查询单个变量 不要用Person.__dict__
            2.2 通过类名.变量名  常用!!!
    print(Person.mind)  # 可查询
    print(Person.language)  #可查询
    Person.create = '有创造力' # 可增加
    del Person.mind # 可删除
    Person.mind = '行尸走肉'
    print(Person.mind)
    print(Person.__dict__)
        3类名对动态方法(函数)进行操作
            3.1 通过类名.__dict__  不建议!!!通过这个方法
            课下自己试一下
            3.2 类名.方法名
    Person.work(111)
    class Person:
        '''
        此类是构建人类
        '''
        level = '高级动物'
        mind = '有思想'
        language = '语言'
    
        def __init__(self,name,age,sex,area,hobby):  # 构造方法
            self.name = name  # slef.name name 是对象属性
            self.age = age
            self.sex = sex
            self.area = area
            self.hobby = hobby
    
        def work(self,eye):
            self.eye = eye
            print('开始工作了!!!!')
        def eat(self):
            pass
    
    #实例化对象.
    # aduan = Person()  # 过程就叫做实例化一个对象
    # 类名+():
    # aduan = Person('啊段',18,'男','河北邯郸','非女')
    # print(aduan)  # <__main__.Person object at 0x0000000001F7EA20>
    #1 产生一个空的对象空间
    #2,自动执行类中的__init__方法,并将空的对象空间传给self,剩下的值传给相应形参
    #3,执行init方法,给对象封装属性,并将完善好的这个对象返回给 类名()
    
    # 对象
        # 1,查找对象中的所有属性
    # aduan = Person('啊段',18,'男','河北邯郸','非女')
    # print(aduan.__dict__)
    
    # aduan = Person('啊段',18,'男','河北邯郸','非女')
    # aying = Person('啊颖',17,'女','河北衡水','开车...')
        #2, 对象操作对象中属性.
    # aduan = Person('啊段',18,'男','河北邯郸','非女')
    # print(aduan.name) # 查
    # aduan.job = 'student' # 增
    # del aduan.age # 删
    # aduan.sex = 'laddyboy'
    # print(aduan.__dict__)
        #3,对象操作类中的静态变量(静态字段). 只能查询不能增删改.
    # aduan = Person('啊段',18,'男','河北邯郸','非女')
    # print(aduan.level)  # 查 类中的静态字段
    # aduan.level = '中等动物'  # 对象中设置新属性,而不是改变类中的level
    # print(aduan.level)
    # del aduan.level
    # print(Person.__dict__)
        #3,对象执行类中的方法.
    aying = Person('啊颖',17,'','河北衡水','开车...')
    print(aying)
    aying.work('大眼睛')
    print(aying.__dict__)
    # 1 self 位置参数, 默认接受的是对象空间,约定俗成叫self.
    # 2 在类的非__init__方法中,也可以给对象添加一些属性,前提必须先执行这个方法.
  • 相关阅读:
    redis zset 延迟合并任务处理
    String忽略大小写方法compareToIgnoreCase源码及Comparator自定义比较器
    dotnet 使用 ConfigureAwait.Fody 库设置默认的 await 同步上下文切换配置
    dotnet 解析 TTF 字体文件格式
    Total Commander 使用 mklink 建立文件夹链接 将 C 盘文件迁移到其他盘
    dotnet OpenXML 解析 PPT 图表 解析日期时间表示内容
    dotnet 使用 IndentedTextWriter 辅助生成代码时生成带缩进的内容
    dotnet 读 WPF 源代码笔记 为什么自定义的 UserControl 用户控件不能跨程序集继承
    dotnet 使用 TaskTupleAwaiter 同时等待多个任务简化代码写法
    dotnet OpenXML 解析 PPT 图表 面积图入门
  • 原文地址:https://www.cnblogs.com/molieren/p/9249432.html
Copyright © 2020-2023  润新知