美文网首页生活不易 我用python我的Python自学之路
【Python笔记】浅析python中的类(第一章)

【Python笔记】浅析python中的类(第一章)

作者: 简书这个地方快倒闭了 | 来源:发表于2017-03-30 20:55 被阅读85次
    • 转载请注明出处

    浅析python中的类

    面向对象最重要的概念就是类(Class)和实例(Instance)
    面向对象的设计思想是从自然界中来的,因为在自然界中,(Class)
    实例(Instance)的概念是很自然的。Class 是一种抽象概念,比如我
    们定义的 Class——Student,是指学生这个概念,而实例(Instance)则
    是一个个具体的 Student,比如,Bart Simpson 和 Lisa Simpson 是两个具
    体的 Student。


    所以,面向对象的设计思想是抽象出 Class,根据 Class 创建 Instance。
    面向对象的抽象程度又比函数要高,因为一个 Class 既包含数据,又包
    含操作数据的方法。

    关于类

    类与类的属性

    class CocaCola:
    formula = ['caffeine','sugar','water','soda']
    
    

    使用class来定义一个类,formula为一个装载着列表的变量
    在类里面赋值的变量就是类的变量,而类的变量又叫类的属性(Class Atrribute)

    类的实例化

    coke_a = CocaCola()
    coke_b = CocaCola()
    ------------------------
    print (CocaCola.formula)
    print (coke_a.formula)
    print (coke_b.formula)
    

    我们在左边创建一个变量,在右边指定类的名称(类似于赋值),这就叫类的实例化。实例化后的对象称为实例(instance)

    类属性的引用

    • 在类的名字后面输入' . ' ,IDE会自动联想出我们之前在定义类的时候卸载里面的属性,这便是类属性的引用(attribute references)

    • 类的属性会被所有类的实例共享,所以当你在类的实例后面再加上' . ',索引用的属性值是完全一样的。

    print (CocaCola.formula)
        
    print (coke_a.formula)
        
    print (coke_b.formula)
    ------------------------------------
    输出结果:
    >>> ['caffeine','sugar','water','soda']
    >>> ['caffeine','sugar','water','soda']
    >>> ['caffeine','sugar','water','soda']
     
    

    实例属性


    class CocaCola:
    formula = ['caffeine','sugar','water','soda']
    coke_a = CocaCola()
    coke_a.local_logo = '可口可乐'    #创建新的实例属性
    print (coke_a.local_logo)    #打印实例属性引用结果
    

    实例方法


    说明

    类的实例可以使用方法。方法就是函数,但是我们把这个函数称之为方法(Method),由于方法是供实例使用的。因此,我们还可以称之为实例方法(Instance Method)

    class CocaCola:
        formula = ['caffeine','sugar','water','soda']
        def drink(self):
            print('Energy!')
    coke = CocaCola()
    coke.drink()
    
    

    关于 self


    注意以下代码中原本self的位置变为了test

    class CocaCola:
        formula = ['caffeine','sugar','water','soda']
        def drink(test):
            print('Energy!')
    coke = CocaCola()
    coke.drink()
    

    实例的使用与使用函数相似

    coke = CocaCola
    coke.drink() == CocaCola.drink(coke)#左右两边的写法完全一致
    

    ==按照Python的规矩,我们还是统一使用self==

    更多的参数

    class CocaCola:
        formula = ['caffeine','sugar','water','soda']
        def drink(self,how_much):
            if  how_much == 'a sip':
                  print ('Cool~')
            elif how_much == 'whole bottle'
                  print ('Headache!')
    coke = CocaCola()
    coke.drink('a sip')
    

    魔术方法

    python中的一些方法被称之为“魔术方法”,_init_()就是其中之一。

    • _init_()是initialize(初始化)的缩写
    • 如果你在类里定义了它,那么当你在创建实例的时候它能帮你自动地处理一些事情。比如,新增实例属性等。
    class CocaCola():
        formula = ['caffeine','sugar','water','soda']
        def __init__(self):
            self.local_logo = '可口可乐'
        def drink(self):
            print ('Engergy!')
    
    coke = CocaCola()
    print (coke.local_logo)
    
    • 再来一段代码展示其灵活性
    class CocaCola():
        formula = ['caffeine','sugar','water','soda']
        def __init__(self):
            for element in self.formula:
                print ('Coke has {}!'.format(element))
        def drink(self):
            print ('Engergy!')
    
    coke = CocaCola()
    ----------------------------------
    output:
    
    Coke has caffeine!
    Coke has sugar!
    Coke has water!
    Coke has soda!
    

    相关文章

      网友评论

        本文标题:【Python笔记】浅析python中的类(第一章)

        本文链接:https://www.haomeiwen.com/subject/trgpottx.html