python函数是实现代码复用的一种方式_ssh pythonpython面向对象入门教程之从代码复用开始(一)...

前言

本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论。所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了面向对象的简单语法介绍。各位道兄不妨一看,如果留下点笔墨指导,本人感激不尽。

下面话不多说了,来一起看看详细的介绍吧

最初代码

3种动物牛Cow、羊Sheep、马Horse发出的声音各不相同,于是在同一个目录下建立三个模块文件:

$ tree .

.

|-- cow.py

|-- horse.py

`-- sheep.py

三个模块文件的内容都只定义了各自的speak()函数:

# cow.py

def speak():

print("a cow goes moooo!")

# sheep.py

def speak():

print("a sheep goes baaaah!")

# horse.py

def speak():

print("a horse goes neigh!")

然后当前目录下在创建一个程序文件main.py,导入这三个模块文件,分别调用这三种动物的speak()函数,它们将发出不同声音:

# main.py

import cow,sheep,horse

cow.speak()

sheep.speak()

horse.speak()

让代码更具共性的两种基本方法

上面的cow.py、sheep.py和horse.py中,都是speak()函数,不同的是函数内容,确切地说是函数内容中print()输出的部分不同,它们输出的结构是a 动物名 goes 叫声!。于是为了让代码更具共性,或者说复用性更高,可以将各模块文件中的动物名和叫声都变得通用化。

目前来说,有两种最基本的方式可以让一段代码变得更共性、共通用化:使用参数或变量、使用额外的辅助函数。当然,除此之外还有更多的方法,但目前来说这两种是最基本的,也是最容易理解的。

使用参数(变量)让代码更具共性

首先让动物名变得共性化。可以让speak()中的动物名使用一个参数来替代。例如名为self的参数变量(之所以使用self,是因为在面向对象中它有特殊含义,后文解释),于是修改这三个模块文件:

# cow.py

def speak(self):

print("a %s goes moooo!" % (self))

# sheep.py

def speak(self):

print("a %s goes baaaah!" % (self))

# horse.py

def speak(self):

print("a %s goes neigh!" %(self))

它们现在在动物名上和参数名上已经完全相同,需要调用它们时,只需在函数调用处为他们传递不同的动物名即可。例如,在main.py中:

import cow,sheep,horse

cow.speak("cow")

sheep.speak("sheep")

horse.speak("horse")

使用辅助函数让代码更具共性

除了参数(变量),还可以定义额外的函数来上面的代码变得更具共性。例如,这三种动物的叫声,可以额外定义一个sound()函数描述它们。于是在前面的基础上继续修改这三个模块文件:

# cow.py

def speak(self):

print("a %s goes %s!" % (self,sound()))

def sound():

return "moooo"

# sheep.py

def speak(self):

print("a %s goes %s!" % (self,sound()))

def sound():

return "baaaah"

# horse.py

def speak(self):

print("a %s goes %s!" % (self,sound()))

def sound():

return "neigh"

在main.py中,仍然可以使用之前的方式对这3个speak()进行调用:

import cow,sheep,horse

cow.speak("cow")

sheep.speak("sheep")

horse.speak("horse")

现在,这3个模块文件的speak()已经完完全全地共性化了。

初步理解类和对象

所谓的类,就像是一个模板;所谓对象,就像是通过模板生成的具体的事物。类一般具有比较大的共性,对象一般是具体的,带有自己的特性。

类与对象的关系,例如人类和人,鸟类和麻雀,交通工具和自行车。其中人类、鸟类、交通工具类都是一种类型称呼,它们中的任何一种都具有像模板一样的共性。例如人类的共性是能说话、有感情、双脚走路、能思考等等,而根据这个人类模板生成一个人,这个具体的人是人类的实例,是一个人类对象,每一个具体的人都有自己的说话方式、感情模式、性格、走路方式、思考能力等等。

类与类的关系。有的类的范畴太大,模板太抽象,它们可以稍微细化一点,例如人类可以划分为男性人类和女性人类,交通工具类可以划分为烧油的、电动的、脚踏的。一个大类按照不同的种类划分,可以得到不同标准的小类。无论如何划分,小类总是根据大类的模板生成的,具有大类的共性,又具有自己的个性。

更多:ssh pythonpython面向对象入门教程之从代码复用开始(一)

https://www.002pc.comhttps://www.002pc.com/python/342.html

你可能感兴趣的python,入门教程,复用,面向对象,代码,开始

No alive nodes found in your cluster

0踩

0 赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值