前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 面向对象

Python 面向对象

原创
作者头像
江小白
修改2019-06-26 10:13:44
5650
修改2019-06-26 10:13:44
举报

面向对象三要素

1、封装

组装:将数据和操作组装在一起

隐藏数据: 对外只暴露一些接口,通过接口访问对象。

2、继承

多复用,继承来的就不用自己写了

多继承少修改,OCP(Open-closed Principle),使用继承来改变,来体现个性

3、多态

面向对象编程最灵活的地方,动态绑定

Python 类的定义

代码语言:javascript
复制
class  ClassName:
     语句块
     
1、必须使用class 关键字
2、类名必须使用大驼峰命名
3、类定义完成后,就产生了一个类对象,绑定到了标识符ClassName上
PS:

     class MyClass:
        """A example class """
        x = 'abc'      
        def foo(self):
            return 'My Class'
     print(MyClass.x)
     print(MyClass.foo)
     print(MyClass.__doc__)
     print(MyClass.__name__)
     

类对象及类属性

类对象,类的定义就会生成一个类对象

类的属性,类定义中的变量和类中定义的方法都是类属性

类变量, 上例中x是类MyClass 的变量

实例化

a = MyClass() # 实例化

__init__ 方法

MyClass() 实际上调用的是__Init__(self)方法,可以不定义,如果没有定义会在实例化后隐式调用。

其实就是对实例进行初始化(__init__()方法不能有返回值,也就是只能是None)

实例变量和类变量

实例变量是每一个实例自己的变量,是自己独有的;

类变量是类的变量,是类的所有实际共享的属性和方法

代码语言:javascript
复制
特殊属性            含义
__name__         对象名
__class__        对象的类型
__dict__         对象的属性的字典
__qualname__     类的限定名

实例属性的查找顺序

指的是实例使用。来访问属性,会先找自己的__dict__,如果没有,然后通过属性__class__找到自己的类,再去类的__dict__中找

PS:

如果实例使用__dict__[变量名] 访问变量,将不会按照上面的查找顺序找变量了,这是指明使用字典的key 查找,不是属性查找。一般,类变量使用全大写来命名。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面向对象三要素
    • 1、封装
      • 2、继承
        • 3、多态
        • Python 类的定义
        • 类对象及类属性
          • 实例化
            • __init__ 方法
            • 实例变量和类变量
              • 实例属性的查找顺序
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档