【读书笔记】_类

作者: 大婶N72 | 来源:发表于2017-03-06 00:07 被阅读12次

    1、python类有静态数据、属性

    1.1、获取属性的方法有两种,一种是dir(类名),一种是类名.__dict__

    class MyClass(object):

        'MyClass class definition' #MyClass 类定义

        myVersion = '1.1' # static data 静态数据

        def showMyVersion(self): # method 方法

            print MyClass.myVersion

    前者返回的是类的属性列表,后者返回是属性字典,键是属性名,值是相应的属性对象的数据值。

    2、如果说类是一种数据结构定义类型,那么实例则声明了一个这种类型的变量。换言之,实例是有生命的类,Python 严格要求, 没有实例, 方法是不能被调用的

    2.1、__init__()应当返回 None

    如果定义了构造器,它不应当返回任何对象,因为实例对象是自动在实例化调用后返回的。相应地,__init__()就不应当返回任何对象(应当为 None);否则,就可能出现冲突,因为只能返回实例。

    3、类属性与实例属性,修改类属性不要通过修改实例属性来实现。

    类实现变化影响实例属性 实例属性变化不影响类属性

    4、绑定与方法调用

    4.1、方法仅仅是类内部定义的函数,这意味着方法是类属性而不是实例属性;

    4.2、方法只有在其所属的类拥有实例时,才能被调用,当存在一个实例时,方法才被认为是绑定到那个实例了。没有实例时方法就是未绑定的;

    4.3、任何一个方法定义中的第一个参数都是变量 self,它表示调用此方法的实例对象。

    5、类、实例和其他对象的内建函数

    5.1、issubclass(sub, sup),sub是sup的子类,确定返回True,否则饭后False,sup可以是一系列父类的元祖,只要sub是其中一个的子类,则返回True。

    5.2、isinstance()

    5.2.1、isinstance(obj1, obj2),obj1 是类 obj2 的一个实例,或者是 obj2 的子类的一个实例时,返回 True(反之,则为 False);

    5.2.2、isinstance(obj1, obj2),检查一个对象 obj1 是否是obj2 的类型,isinstance()也可以使用一个元组(tuple)作为第二个参数,如果第一个参数是第二个参数中给定元组的任何一个候选类型或类的实例时,就会返回 True。

    5.3、callable(),确定一个对象是否可以通过函数操作符(())来调用。如果函数可调用便返回 True,否则便是 False。

    5.4、eval(),对表达式求值,内建函数 eval()接收引号内的字符串并把它作为 python 表达式进行求值。

    5.5、input()和raw_input(),raw_input()总是以字符串的形式,逐字地返回用户的输入。input()履行相同的的任务;而且,它还把输入作为 python 表达式进行求值。这意味着input()返回的数据是对输入表达式求值的结果:一个 python 对象。

    相关文章

      网友评论

        本文标题:【读书笔记】_类

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