zoukankan      html  css  js  c++  java
  • 第二十六章 类代码编写基础

    #1.
    #A:类对象提供默认行为,是实例对象的工厂。实例对象时程序处理的实际对象,每次调用一个类就会产生这个类新的实例
    #B:执行class语句就会得到类对象
    #  class语句创建类对象并将其赋值给变量名。就像函数的def一样
    #  class语句内的顶层赋值语句会产生类的属性
    
    #2.
    #A:在方法内对self属性做赋值运算会产生每个实例自己的属性
    #  在类方法函数内,第一个参数一般为self,会引用正处理的实例对象,对self的属性做赋值运算,会改变或创建实例内的数据,而非类的数据
    #  第一个参数其名称可以是任意的,一般设为self
    #B:在类外,则可以通过对实例对象进行赋值运算来产生属性
    class CTest:
        def Fun0(self):
            self.value = 10
        def Fun1(self):                 #若在类的实例调用Fun0前调用此函数,会出错
            return self.value
    
    Test = CTest()
    bValue0 = 'value' in dir(Test)      #bValue0 = False
    Test.Fun0()
    bValue1 = 'value' in dir(Test)      #bValue1 = True
    
    bValue2 = 'TestValue' in dir(Test)  #bValue2 = False
    Test.TestValue = 'a' 
    bValue3 = 'TestValue' in dir(Test)  #bValue3 = True
    bValue4 = 'TestValue' in dir(CTest) #bValue4 = False
    
    #3.
    #A:父类列在了类开头的括号中
    #B:__init__方法,称为类的构造函数方法,它是用于初始化对象的状态的
    class CFather:
        def __init__(self):
            self.value = 'CFather'
    
    class CChild(CFather):
        def Fun0(self):
            return self.value
    Test = CChild()
    value = Test.Fun0()                 #value = 'CFather'
    
    #4.重载运算符的主要概念:
    #A:以双下划线命名的方法(__X__)是特殊钩子。python运算符重载的实现是提供特殊命名方法来拦截运算。
    #  python替每种运算和特殊命名的方法之间,建立了固定不变的映射关系
    #B:当实例出现在内置运算时,这类方法会自动调用。
    #  例如,如果实例对象继承了__add__方法,当对象出现在+表达式内时,该方法会自动调用,该方法的返回值会变成相应表达式的结果
    #C:运算符覆盖方法没有默认值,也不需要
    class CTest:
        def __init__(self):
            self.value = 10
        def __add__(self, value):
            return self.value + value
        def __str__(self):              #通过内置函数str或者print的时候会自动调用
            return 'str'
    Test = CTest()
    value = Test + 20                   #value = 30
    #value1 = 20 + Test                 #报错
    print(Test)                         #输出str
    str = str(Test)                     #str = 'str'
    
    #5.
    #A:直接给类添加属性
    class CTest : pass
    Test = CTest()                      #这个类的实例开始是一个空的命名空间对象,因为她知道创建她的类,所以她会得到附加在类上的属性
    CTest.value0 = 'a'
    CTest.value1 = 'b'
    vlaue0 = CTest.value0               #vlaue0 = 'a'
    value1 = Test.value1                #value1 = 'b'
    
    def Fun0(T):
        T.value0 = 'c'
    CTest.Fun0 = Fun0
    Test.Fun0()
    value = Test.value0                 #value = 'c'
    

      

  • 相关阅读:
    sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序
    sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
    一个不错的android组件的网站
    sencha touch 扩展篇之使用sass自定义主题样式 (上)使用官方的api修改主题样式
    sencha touch 入门系列 (九) sencha touch 布局layout
    面试题总结
    国外接活网站Elance, Freelancer和ScriptLance的介绍和对比
    sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩
    Android Design Support Library——Navigation View
    设计模式——命令模式
  • 原文地址:https://www.cnblogs.com/szn409/p/6735708.html
Copyright © 2011-2022 走看看