• 16 类,对象; 类,对象调用类中的变量和方法.


    主要内容:

    1.  类和对象的基本定义:

      类:具有相同属性和技能的一类事物

      对象:具有类的表现,具体的实实在在的一个实例.

    2.  类体有两部分组成:变量部分和 方法(函数)部分.

    class Person:
        '''类体:两部分:变量部分,方法部分'''
        mind = '有思想的'   #变量,静态变量,静态字段
        animal = '高级动物'
        faith = '有信仰'
        def work(self):     #方法,函数,动态变量
            print('人类都会工作')
        def shop(self):
            print('人类可以消费')
    

    3.  类名的角度

    # 1)  Person.__dict__ 查询类中的所有的内容 (不能进行增删改操作)
    print(Person.__dict__)             #查看类中的所有变量,内容
    print(Person.__dict__['mind'])    #不经常使用
    
    # 2)  万能的  .  对类中的单个的变量进行增删改查,用 万能的 点
    print(Person.mind)       #查看类中的变量
    Person.money = '货币'     #增
    print(Person.__dict__)    
    del Person.mind           #删
    print(Person.__dict__)
    Person.animal = '低级'   #该
    print(Person.__dict__)
    
    # 3)  操作类中的方法,工作中不常用.
    Person.work(11)
    

    4.  对象的角度

        a:类名():产生一个实例(对象,对象空间),执行类名()的过程,相当于执行三个过程.

    class Person:
        mind = '有思想的'   #变量,静态变量,静态字段
        animal = '高级动物'
        faith = '有信仰'
        def __init__(self):
            print(self)
        def work(self):     #方法,函数,动态变量
            print(self)
            print('人类都会工作')
        def shop(self):
            print('人类可以消费')
    ret = Person()     #person()产生一个实例,对象,对象空间.
    print(ret)
    
    #1.  类名+()产生一个实例(对象,对象空间)
    #2   自动执行类中的__init__方法,将对象空间传给__init__的self参数.
    #3   给对象封装相应的属性.

       b:操作对象中的静态变量

        1)  查看对象中的所有变量(内容) :   对象.__dict__

        2) 万能的 .

    class Person:
        mind = '有思想的'   #变量,静态变量,静态字段
        def __init__(self,name,sex,age):
            self.name = name
            self.sex = sex
            self.age = age
        def shop(self):
            print('人类可以消费')
    ret = Person('alex','23','男')
    print(ret)                       #<__main__.Person object at 0x0000019D20D5F0B8>
    print(ret.__dict__)              #查看对象中的所有内容.{'name': 'alex', 'sex': '23', 'age': '男'}
    print(ret.name)                  #万能的点
    del ret.name           #删
    print(ret.__dict__)
    ret.name = 'sylar'     #改
    print(ret.__dict__)
    ret.hobby = '教学'     #增
    print(ret.__dict__)
    

      c:对象操作类中的静态变量,只能查询,不能进行其他操作.

    print(ret.mind)             #有思想的
    del ret.mind                #报错,只能进行查询,不能进行其他操作.
    print(Person.__dict__)
    

      d:对象调用类中的方法(工作中通过对象执行类中的方法,而不是通过类名)

     class Person:
        mind = '有思想的'   #变量,静态变量,静态字段
        animal = '高级动物'
        def __init__(self,name,sex,age):
            self.name = name
            self.sex = sex
            self.age = age
        def shop(self):
            print(self)
            print('人类可以消费')
    ret = Person('alex','23','男')
    ret.shop()     #不用传参数,Person()会产生一个对象空间,给ret,ret给shop传递参数.
    Person.shop(1) #需要传参数
    print(ret)
    

      

  • 相关阅读:
    [ZJOI2010]基站选址
    [SDOI2008]Sue的小球
    访问计划
    奥义商店
    codeforces 809E Surprise me!
    codeforces 888G Xor-MST
    [HAOI2015]数字串拆分
    小奇分糖果
    小奇的花园
    BZOJ4711 小奇挖矿
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9354561.html
Copyright © 2020-2023  润新知