Python数据模型

本文深入讲解Python中的特殊方法,即魔术方法,包括其定义、作用和基本用法。重点介绍了如何利用这些方法来实现对象的迭代、运算符重载等功能,并通过实例演示了如何自定义向量加法。
导语:本文章记录了本人在学习Python基础之绪论篇的重点知识及个人心得,以加深自己的理解。

本文重点:

1、了解Python数据模型和接口的概念;
2、掌握特殊方法的定义,作用和基本用法。

一、基本概念

1、数据模型(Data Model)是数据特征的抽象,这里是对Python框架的描述。
数据模型规范了Python自身构建模块的接口,模块包括但不限于序列、迭代器、函数、类和上下文管理器。
2、接口:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。
接口的作用:可以为不同类顺利交互提供标准。
3、中缀运算符的基本原则:不改变操作对象。

二、特殊方法

特殊方法,昵称是魔术方法,又称双下方法。

1、特殊方法的定义:

(1).定义在某些class当中;
(2).不需要直接调用,被Python解释器调用;
(3).Python的某些函数或者是操作符会调用相应的特殊方法。

2、作用:特殊方法能让对象实现和支持以下的语言构架,并与之交互:
  • 迭代
  • 集合类
  • 属性访问
  • 运算符重载
  • 函数和方法的调用
  • 对象的创建和销毁
  • 字符串表示形式和格式化
  • 管理上下文(with块)
3、意义:通过内置函数调用特殊方法通常有额外好处(目前不明);对于内置的类而言,使用特殊方法速度更快。
4、字符串特殊方法

包括__repr__和__str__。
前者方便我们调试和记录日志,注重准确性,后者则是给终端用户看的,注重可读性。

eg:利用特殊方法知识自定义向量加法

# -*- coding: utf-8 -*-
class Vector:
    def __init__(self,x,y):#定义类的参数
        self.x=x
        self.y=y
    def __repr__(self):
        return "Vector(%r,%r)"%(self.x,self.y)#以字符串形式输出类便于辨认,重要!!!
    def __add__(self,other):#自定义向量的加法并返回值
        x=self.x+other.x
        y=self.y+other.y
        return Vector(x,y)
v1=Vector(2,3)
v2=Vector(1,4)
print(v1+v2)#输出Vector(3,7)

To Learn More:https://www.cnblogs.com/chang...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值