python调用大漠写程序有什么优势_Python中使用class()有什么优势 (PS:想知道实际应用中的优势)?...

题主的问题:

(1)开发效率、可维护性、运行效率

(2)为什么会方便

(3)“累死”体现...

写在前面

先来说函数和class的区别:class一般用于抽象某一类实例,函数用来抽象某一种行为。举个例子,题主和我都是“人”,是个人都(具有)两只耳朵,一只鼻子,一个嘴巴;同时(能够)跑步,唱歌.那么我们可以这么[定义人类]

class human():

def __init__(self,eye=2,nose=1,mouth=1,leg=2):

#具有的属性

self.eye=eye

self.nose=nose

self.leg=leg

self.mouth=mouth

#具备的能力

def run(self):

print "I'm running"

def sing(self):

print "I'm singing"

第一问

开发效率:对于大型项目而言,1.由于许多功能可能已经有人实现过了,或者是类似的功能,那么class具有继承能力,可以直接修改、添加别人已使用的功能;2.可能同一个程序中总是有重复的类的实例出现,那么你只用定义一次即可(如:一个程序不可能只存在一个窗口,那么既然他是个窗口肯定会有公有属性,比如标题栏、背景、一个框框之类的;那么这些可以在定义类的时候就完成,之后继承就好)。继续前一节的例子,我们已经定义好了人类,现在尝试如何定义缺失了一条腿的残疾人。

class Canji(human):#继承human父类

def __init__(self):

human.__init__(leg=1)#继承, 但修改部分私有属性

def run(self): #重写函数

print "I can not run"

现在,我们的应用进程里面的某几个页面有差异,那么我们只需要修改差异的部分。而且对于运行中定义一个实例会变得更为快捷,比如小明是残疾人,小红是个普通人,小张也是个普通人:

小明=canji()

小张,小红=human(),human()

这里是不是发现,我们对于代码的书写变得快了很多?复用度的提高,进而提高了开发效率

可维护性:我们现在看上述最后一段代码,假设某天产品经理要求升级你现在的用户体验,使得所有的人类都可以穿衣服。如果你不用类的话,那么你需要对于所有的人类实力都添加相应的代码,而且你还不一定能在成千上万行代码中找到你临时写的所有人类。有了类以后,你只需要修改类文件就好啦。还有一种情况,一个新人要来搞懂到底你的小张是什么,他只需要看一眼类文件就ok了,这就是可维护性

运行速度:这个我的体会还不深刻,但我觉得和python寻找变量的顺序有影响。比如,你的某个函数需要调用10个参数,如果你的代码是写在主文件里的话,那么他可能要遍历完整个主文件的作用域上找变量;但如果你是写在类里的话,他会优先遍历类里面的变量。

第二问

举个我自己的例子吧!我比较常用Python来进行数据分析,那么读取大型的数据文件自然而然就是经常要做的事情了。为此,我自己写了一个类来实现我常用的数据操作功能。

现在的代码如下:

import datapy as dp

data = dp.dbsystem(address) #会自动根据后缀名自动选择文件分割符,并且删除首行标题

data.readall() #全文读取

data.readcol([1,3]) #逐列读取

data.head() #打印数据表的前5行

data.types() #变量类型

data.names() #数据集的变量名

len(data) #数据集大小

而且可以直接对data进行for操作或者遍历, 亦可以进行切片操作.

都取出来的数据会逐行tuple类型保存。

如果你想使用这个方法里的相关操作, 你只需要把你已有的数据集放进数据库中就可以了

比如:

a = [[1,2,3],

[2,3,4],

[5,6,7]]

data = dp.dbsystem(db=a) #这样就将a列表实例化成了我设定的类,它可以直接进行我的

data.head(),data.types(),data.names()等相关操作。你说这样是不是很方便?

当然,如果我对于这个类的内置函数再多一点,在复杂一点,它可以在初始化的时候,就自动完成所有参数等内容的生成。如果你调用函数的话,你还要手动调用一堆其他的函数来生成目标函数的参数。

第三问

相信,前两问附带代码的回答,已经足够让题主明白什么叫做“累”了...

总结:

(1)类是用来抽象一个实例,函数是用来抽象一个方法;类的抽象度比函数高一个级别【加一个python实例抽象度排行:底层代码

(2)类的公有和私有属性及继承的能力,更利于代码的复用(不用自己造轮子,自己造的轮子也可以用在好多车上)和阅读( 毕竟变短了),同时也提高了代码的规范性。【便于维护与开发】

PS.我也才写了大概8k-1w行代码吧,但是现在去看我以前写的头3k行代码,那是什么呀!一坨屎!复用?还不如自己重写呢!

最近在帮别人开发一套赛事管理系统,最关注的点是如何提高代码的运行效率,如何提高程序的稳定性,如何让程序变得美观;最最重要的是,如何让自己一年以后,被叫去添加新功能或者debug的时候,能看懂当时在想什么……

最后的最后,我不是大神...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值