zoukankan      html  css  js  c++  java
  • 【python】面向对象初识

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

    #对象:具体类的实例化表现

    class Person: #类名的首字母必须大写

        '''

        类体只分两部分:变量部分和方法(函数)部分;

        名词归于变量,动词归于方法。

        '''

        mind = '有思想' #变量  静态变量   静态字段

        animal = '高级动物'

     faith = '有信仰'

        def __init__(self,name,age,hobby):  #构造函数

            self.name = name  #相当于 变量名 = 实例化需要传入的值

            self.age = age

            self.hobby = hobby

        def work(self):  #方法  函数  动态变量

            print("都要工作...")

        def shop(self):

            print("都要消费...")

    1、类名操作角度:

    1.1操作类中的静态变量:重要

            #方法1:Person.__dict__ 查询类中所有内容(增删改不可操作)

    print(Person.__dict__)   #返回当前类中所有内容,返回的数据格式是字典

    print(Person.__dict__["animal"]) #根据key查询对应value

    """

    Person.__dict__["animal"] = '无脑' 

    print(Person.__dict__["animal"]) #会报错,__dict__不可进行增删改

    """

            #方法2:万能的点  对类中单个变量进行增删改查

    print(Person.animal)  #查

    Person.money = '运用货币'  #增

    Person.mind = '无脑'  #改

    del Person.animal 

    print(Person.__dict__) 

    2、对象角度:

    Person()      #类名()的这个过程叫实例化一个对象 (创建一个对象的过程)

    #ret = Person()  ret代表的就是这个对象,ret的值和返回给self的值是一样的

    ret = Person('alex',18,'lady')  #实例化对象

    print(ret.__dict__)  #打印内容:{'name': 'alex', 'age': 18, 'hobby': 'lady'}

    类名() 内部执行过程:

    #1)产生一个实例(对象,可以理解成产生一个对象空间,内存地址)

    #2)在实例过程中最先执行__new__方法,用来创造一个对象然后再自动执行类中的__init__ 方法,并将该对象的内存地址传给函数里第一个位置参数,约定俗成叫self

    #3)给对象封装相应的属性(变量)

    2.1 对象操作对象中的静态变量

            #1、__dict__ 查看对象中所有的内容

    ret = Person('alex',18,'lady')

    print(ret.__dict__)

            #2、万能点操作

    print(ret.name)  #查询

    ret.high = '175' #增

    print(ret.high) #查单个的值

    print(ret.__dict__) #查该对象下所有的内容 

    del ret.name  #删

    ret.age = 73  #改  

    2.2 对象操作类中的静态变量 #只能查询

    print(ret.name)

    2.3对象操作类中的方法 (常用)

    ret.shop()

    #对象调用类中的所有方法,默认第一个参数self是不用传的,同__init__,self的值就是ret的值 (对象的内存地址)

    说明1:通过类名.变量名 可以修改变量值,但对象名.变量名不可以修改,只会在当前命名空间中新增一个局部变量

    class Count:

        count = 0

        def __init__(self):

           pass

    #通过类名可以更改类中静态变量值

    Count.count = 6

    print(Count.__dict__)  #此时查到静态变量值改为6

    #但是通过对象,不能改变 只能引用静态变量值

    obj1 = Count()

    print(obj1.count)  #  0

    obj1.count = 6 #该操作是给对象空间添加一个变量count = 6 ,修改的并不是静态变量值

    print(obj1.count)   # 6

    说明2:

    '''

    count = 0 

    def func():

        print(count)

    func()   #函数里全局变量count可直接调用并打印

    '''

    class Count:

        count = 0

        def __init__(self):

           # print(count)  #在类中这么使用会报错,应用print(Count.count)

      #Count是全局的,但变量count属于局部变量,若想直接用必须用类名.变量名引用

           Count.count = Count.count + 1 

            

    obj1 = Count() # 实例化一个对象

    obj1 = Count()

    obj1 = Count()

    #print(Count.count)

    print(obj1.count)

  • 相关阅读:
    HTML学习笔记
    JSP与Servlet的跳转及得到路径方法整理(转)
    Servlet 学习笔记6:Cookie
    工作=娱乐=爱[龙]
    幸福的方法[龙]
    10张海报,激励人生[龙]
    8个方法让你安然度过低效率的日子[龙]
    使用空余时间的20个有效途径
    人生三点钟
    2013计划
  • 原文地址:https://www.cnblogs.com/xlzhangq/p/13211234.html
Copyright © 2011-2022 走看看