python面向对象的三大要素_Python 的OOP 面向对象编程基础

Objects

Sorts of Program Languages

Machine Orinted

机器指令

汇编语言

Procedure Orinted

按照步骤和分支处理

C

Object Orinted

多人、多部门写作

C++ Java PythonPython 中一切皆对象,面向对象做得非常彻底

对象是数据和操作的封装

对象是独立的,但对象之间可以互相作用

目前OOP是最接近人类认知的编程范式。

OOP

描述数据——Property

Action——Method

class

collection of profiles

类中没有函数,都叫方法。

instance object

OOP三要素:

1、封装:

组装、封闭。

数据的隐藏。

2、继承:

多复用

多继承少修改,OCP(Open-closed Principle)

3、多态:

动态绑定。Python几乎不存在

Python的class

classMyClass:

"""A example class"""

x ='abc'#类属性

deffoo(self):foo 是method object

print(self.x)self,不要换,将类的实例本身作为方法参数传入

print(MyClass)

print(MyClass.__name__)

print(MyClass.x)

print((MyClass.foo))

MyClass

abc

‘.’是用来找成员的

.__dict__可以获取包含MyClass的全部属性的dict,包括有我们定义的

x变量

__doc__:"""A example class"""

foo方法

还有缺省的__module__:__main__

__init__方法等属性

类对象及类属性类对象,定义一个类,它就是一个类对象type class

类的属性,定义中的变量和方法都是类的属性。 都属于类的标示符

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

foo是methond方法对象,不是普通的fucntion了,必须至少有一个参数,且第一个参数必须是self。

self指代当前实例本身

mycls = MyClass()#实例化,初始化

print(mycls.foo()))

print(mycls.x)

print(mycls.foo)

abc

None

abc

>

print(MyClass)实例化

a = MyClass()

类对象后面加上(),就调用类的实例化方法,完成实例化。

Python 类实例化后,会自动调用__init__方法,这个方法第一个参数必须留给self。

def __new__ 实例化__init__方法

__init__(self),初始化方法,又叫构造器,构造方法,

已经构造完成

只能返回None,instance类实例化后的object就是 实例对象

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

类属性保存在类的__dict__中,实例属性保存在实例的—__dict__中,如果从实例访问类的属性,需要借助__class__找到所属的类。

__qualname__

类类型实例才有限定名__qualname__,不等于name

__dict__属性集合

实例属性的查找顺序

函数的对象操作都是一样的

首先翻看一下自己的dict,然后通过属性__class__找自己的类再去类的dict中找。

装饰一个类

调用类用__xxxx__是类的就是大家的。

如果不带参,就用@staticmethod

def staticmtd():

print('static')

访问控制 public protect private

Private Property 私有属性

在实例的__dict__中可以用_Person__age查找,因为解释器改名

Protect Property

_name 是开发者的约定,不要改

Private Method 私有方法, 与私有变量类似

在类的__dict__可以找到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值