美文网首页
Python 类

Python 类

作者: __RY__ | 来源:发表于2018-09-15 22:21 被阅读4次

    定义


    1、必须使用class关键字
    2、类名必须使用大驼峰命名
    3、类定义完成后就产生了一个类对象,绑定到了标识符ClassName上



    类对象及类属性

    • 类对象,类定义就会生成一个类对象
    • 类的属性,类定义的变量和类中定义的方法都是类的属性
    • 类变量,上例中x是类MyClass的变量
    • foo是方法对象Method,不是普通的函数对象function,它一般至少有一个参数,第一个参数可以是self(self只是个惯用标识符,可以换名字),这个参数位置就留给了self。

    self指代当前实例本身


    实例化


    每次实例化后获得的实例,是不同的实例,即使是同样的参数实例化,也得到不一样的对象。
    Python类实例化后,会自动调用init方法,这个方法第一个参数必须留给self,其他参数随意。

    init 方法
    MyClass()实际上调用的是init(self) 方法,可以不定义,如果没有定义会在实例化后隐式调用
    作用:对实例进行初始化


    初始化函数可以接受多个参数,请注意第一个位置必须是self,例如init(self,name, age )

    注意:init() 方法不能有返回值,也就是只能是return None

    实例对象 instance
    类实例化后一定会获得一个对象,就是实例对象
    init 方法的第一参数self就是指代某一个实例。
    类实例化后,得到一个实例对象,实例对象会绑定方法,调用方法是采用jerry.showage()的方式。
    self就是jerry,Python会把方法的调用这作为第一个参数self的实参传入。
    self.name 就是jerry对象的name,name保存在了jerry对象上,而不是Person类上,所以称为实例变量。

    self


    上例说明,self就是调用者,就是c对应的实例对象。
    self 这个名字只是一个惯例,它可以修改,但是请不要修改,否则影响代码的可读性。

    实例变量和类变量


    实例变量是每一个实例自己的变量,是自己独有的;类变量是类的变量,是类所有实例共享的属性和方法。

    注意:Python中每一种对象都拥有不同的属性。函数、类都是对象,类的实例也是对象。

    总结
    是类的,也是这个类所有实例的,其实实例都可以访问到;是实例的,就是这个实例自己的,通过类访问不到,类变量是属于类的变量,这个类的所有实例可以共享这个变量。

    对象可以动态的给自己在增加一个属性,实例.dict[变量名]和实例.变量名都可以访问到,实例的同名变量会隐藏掉类变量,或者说覆盖了这个类变量。

    实例属性的查找顺序
    指的就是实例使用 .点号来访问属性,会先找自己的dict ,如果没有,然后通过属性class找到自己的类,再去类的dict中找。
    注意,如果实例使用dict[变量名] 访问变量,将不会按照上面的查找顺序找变量,这是指明使用字典的key查找,不是属性查找。

    相关文章

      网友评论

          本文标题:Python 类

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