首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

全民编程——Python小短课,函数大法好加一

【Python小短课 13】函数大法好加一

继续来说下函数的好处。为什么花这么多篇章来说函数?因为函数太重要,把函数理解透,小至Python其他概念的理解,大至计算机原理的理解,都有所助益。

上回说到函数有一个好处,复用性。那么,函数还有什么好处?函数实现了封装和隔离。

就还是以”找宝藏“这个程序为例,针对findTreasure(找宝藏)这个需求,我们分解出了其中一个子需求isLucky(判断是否好运)。假设findTreasure这个需求异常复杂,不止几个子需求,而是几千个子需求。想象一下,类似isLucky这样的子需求,如果不“封装”成一个函数,那意味着只有自己动手丰衣足食了。而反过来想,如果“封装”成一个函数,意味着什么?意味着你只需知道isLucky是“判断是否好运”,而并不需关心它是怎么实现这个逻辑的,也即意味着isLucky可以交给另外一个人去负责。

假设现在有两个开发人员,A很忙,然后把isLucky交给了B去实现。下面,我们假装isLucky具体逻辑还没实现完,而是先返回一个预期结果。

代码:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import random

#实现“判断是不是比神兽弱

def isWeakerThanBeast ():

iRan = random.randint(1,10)

if iRan

return True

else:

return False

#实现”判断是否好运“,暂时没时间实现,先返回预期的结果,按计划再实现具体的逻辑

def isLucky ():

#iRan = random.randint(1,10)

#if iRan

# return True

#else:

# return False

return True

#实现“找宝藏”

def findTreasure ():

iCount = 0

while True:

iCount = iCount + 1

#判断是不是比神兽弱

if isWeakerThanBeast():

continue

#判断是否好运

if isLucky():

break

print(str(iCount)+"次找到宝藏")

#执行“找宝藏”需求

findTreasure()

思考一下,从上面代码你可以看出什么?我们把isLucky逻辑封装成函数,实现了一种隔离,这种隔离可以让A和B达成比较高程度的分工协作,A专注于实现findTreasure,B专注于实现isLucky,虽然工作有依赖和交叉,但却基于接口(isLucky)达成了协议,然后各自干活。

举个例子,A和B合作做一道“土豆丝炒牛肉”,A切牛肉、热锅、掌勺,B切土豆丝,这时候A和B只需基于“切土豆丝”这个接口商量好要怎样的土豆丝,就可以实现分工合作,最终达成目标。

封装实现了隔离,而隔离有利于分工协作,各自基于之前谈好的接口干活,最终集成。

函数的复用和封装,本质上在日后要说到的模块、类等内容均有所体现。在这提醒各位小萌新,学习东西不要囿于细节,而需从慢慢学习到的知识中总结规律,得出普遍性的本质。

关于函数的好处,咱们告一段落,之后跟大家讲讲函数更多的具体用法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190627A0FA7D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券