Python金融大数据分析——面向对象编程

一、基本概念

面向对象编程(OOP)的概念在过往的文章中已有探讨,现在我们先简单回顾。

类,是对某一类对象的抽象定义;与之相对的对象,指的是类的一个实例。方法,是类可以实现的一个操作;属性是类或者类实例的特征。以下给出一个实现“简历”的一个简单类实例代码。

#类定义,self是指类的当前实例
class resume(object):
    def __init__(self,name,education):
        self.name=name
        self.education=education
        self.point=0 #初始化得分属性
    def score(self,points) #得分方法定义
        self.score+=points

Amber = resume('Amber','University') #实例化
Amber.education #查询属性
Amber.score(2) #调用方法

二、对象

标准对象包括int\list\ndarray\DataFrame等,这一节我们主要介绍最后一种

import pandas as pd
import numpy as np
a=np.arange(16).reshape((4,4))
df=pd.DataFrame(a,columns=list('abcd'))

df.sum()
df.cumsum()
df+df
df.__sizeof__() #获取以字节为表示的内存使用量

三、类

__init__的重要性体现在每当对象实例化时都需要调用,其选取的参数为对象本身或者可能的其他参数。对于具体内容经常改变但是代码不常改变的情形,可以在类中定义相应的方法如下:

class FinancialInstrument(FinancialInstrument):
    def get_price(self):
        return self.price
    def set_price(self,price):
        self.price=price

但为了阻止用户直接访问和操纵实例属性,私有实例属性就派上用场

class FinancialInstrument(FinancialInstrument):
    __init__(self,symbol,price):
        self.symbol=symbol
        self.__price=price
    def get_price(self):
        return self.price
    def set_price(self,price):
        self.price=price

注意到区别在于价格前面有两个前导下划线,这使得其定义为私有实例属性,此时用户直接访问该属性时就会出错。

四、数据模型实例——Vector类

class Vector(object):
    def __init__(self,x=0,y=0,z=0):
        self.x=x
        self.y=y
        self.z=z
    def __repr__(self):
        return 'Vector(%r,%r,%r)'%(self.x,self.y,self.z)
    def __abs__(self):
        return(self.x**2+self.y**2+self.z**2)**0.5
    def __add__(self,other):
        x=self.x+other.x
        y=self.y+other.y
        z=self.z+other.z
        return Vector(x,y,z)
    def __getitem__(self,i):
        if i in [0,-3]:return self.x
        else:raise IndexError('Index out of range.')
    def __iter__(self):
        for i in range(len(self)):
            yield self[i]

该例展示了Python数据类可以支持的几项任务和结构。

本文为笔者个人学习《Python金融大数据分析》一书所得,若有不妥谬误之处,还望温和批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值