Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将一个大函数重构为一组较小的函数

将一个大函数重构为一组较小的函数
EN

Stack Overflow用户
提问于 2020-11-28 14:59:05
回答 2查看 66关注 0票数 0

就干净的代码而言,嵌套了for循环、if-else语句和while循环的函数应该如何重构?对于这样一个大函数来说,理想的、整洁的结构是什么?将这样的函数分解成嵌套函数是可以接受的吗?

代码语言:javascript
运行
AI代码解释
复制
def main():

try:
    for 
        if
            for 
                while 

                    for

        for
            if 
                for 

                    if 
                    else

                    if
                    else

                    if 

except:

if __name__ == "__main__":
    main()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-28 15:37:47

如果你真的需要,只在侧边循环中嵌套循环,否则避免嵌套它们(出于算法性能的原因)。

使用Omri应答建议来标识您正在执行的每个步骤,为每个步骤指定一个清晰的名称,并将该步骤提取到它自己的函数中(您可以调用该函数来执行原始函数中的步骤)。

这与嵌套函数不同,嵌套函数是出于不同的原因而做的。您只是调用放置在其他地方(而不是嵌套在您的函数中)的helper函数。

不要将所有内容都包含在try块中,并且避免使用catch all空except:。只将可能引起麻烦的特定(或少数几个语句)包围起来,并且在expect子句中只列出您期望出现的错误或错误类别。

票数 2
EN

Stack Overflow用户

发布于 2020-11-28 15:18:12

它主要是基于意见的,并且依赖于代码本身。一个很好的经验法则是,每个函数都需要有一个逻辑用途。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65050955

复制
相关文章
代码重构(一):函数重构规则
重构是项目做到一定程度后必然要做的事情。代码重构,可以改善既有的代码设计,增强既有工程的可扩充、可维护性。随着项目需求的不断迭代,需求的不断更新,我们在项目中所写的代码也在时时刻刻的在变化之中。在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用。或者你因为需求迭代与变更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加。此时,你要考虑重构了。 重构,在《重构,改善既有代码的设计》这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情况下,修改代码的内部
lizelu
2018/01/11
1.7K0
代码重构(一):函数重构规则
用于将图像转换为较小的块以执行图像处理任务的函数。
fig2texPS.m function fig2texPS(varargin) EPS=1e-10; s = warning('query', 'all'); % save warnings warning('off','all'); % disable all warnings % clc % clear screen %% % INITIALIZATION % create new struct 'globals' that contains all plot settings with th
裴来凡
2022/05/28
6.9K0
用于将图像转换为较小的块以执行图像处理任务的函数。
函数重构之道
以下代码做了好几件事情。它创建缓冲区、获取页面、搜索继承下来的页面、渲染路径、添加神秘的字符串、生产HTML等等。
栋先生
2018/09/29
4560
一组python用于验证数据的函数
这是一组python用于验证数据是否合法的函数,包括检测类型是否为整数、浮点数、字符串、字典、元组、数组、bool类型等,还可以检测是否为 货币、是否为空、是否是合法的日期格式,是否是邮件地址(Email),是否是中文字符,是否符合用户账号的规则,是否是合法的ip地址等等。
用户7999227
2021/11/01
8970
一组python用于验证数据的函数
这是一组python用于验证数据是否合法的函数,包括检测类型是否为整数、浮点数、字符串、字典、元组、数组、bool类型等,还可以检测是否为 货币、是否为空、是否是合法的日期格式,是否是邮件地址(Email),是否是中文字符,是否符合用户账号的规则,是否是合法的ip地址等等。
大师级码师
2021/11/02
1.3K0
重构 - 保持函数的单一职责
上篇文章写了添加扩展性方面的重构,讲到了开放封闭原则。学习的步伐不能就此停止,今天的文章,将会提及开发的另一个原则:单一职责原则。通俗点说就是一个函数只做一件事,下面将会通过几个实例,探究单一职责原则。
守候i
2018/05/14
1.1K3
重构 - 保持函数的单一职责
代码重构:函数重构的 7 个小技巧
Extract Method 的重构手法是将多个 println() 抽离到独立的函数中(函数需要在命名上,下点功夫),这里对抽离的函数命名有 2 个建议:
phoenix.xiao
2021/10/20
6790
代码重构之内联函数
意图 - 内部代码和函数名称同样清晰易读,去除无用的间接层 示例 /** * 内联函数之前 * Created by luo on 2017/4/18. */ public class Inl
编程随想曲
2022/04/21
3400
将单体应用重构为微服务
微服务重构概述 将单体应用程序转换为微服务的过程是应用程序现代化的一种形式。这是几十年来开发人员一直在做的事情。因此,在将应用程序重构为微服务时,有一些方法可以重用。 一个策略是不推荐“大面积”重写。那就是当您将所有的开发工作集中在从头开始构建新的基于微服务器的应用程序时。虽然听起来很吸引人,但它是非常危险的,可能会以失败告终。 您应该逐步重构单体应用程序,而不是大面积重写。您应该逐渐构建一个由微服务组成的新应用程序,并与您的单体应用程序一起运行。随着时间的推移,单体应用程序实现的功能量会缩小,直到它完全消
用户1263954
2018/01/30
1K0
将单体应用重构为微服务
JavaScript重构技巧 — 函数和类
JavaScript 是一种易于学习的编程语言,编写运行并执行某些操作的程序很容易。然而,要编写一段干净的JavaScript 代码是很困难的。
前端小智@大迁世界
2020/06/19
7490
C++函数指针、指针函数、返回值为函数指针的函数浅谈
函数指针、指针函数是C中重要而容易混淆的概念,博主将通过两个实例来说明这两个截然不同的概念。 而返回值为函数指针的指针函数就更难理解了,放在文章的最后来介绍。
全栈程序员站长
2022/06/25
1.8K0
C++函数指针、指针函数、返回值为函数指针的函数浅谈
【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
之前的博客 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读) 六. 函数指针 章节中 , 详细介绍了 函数指针 , 以及 函数指针 与 数组 , 其它指针 结合的 复杂指针如何进行解读 ;
韩曙亮
2023/10/15
4100
【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
函数指针,指针函数,返回值为指针的函数「建议收藏」
在学习C语言时,一个比较容易混淆的概念就是函数指针、指针函数、返回值为指针的函数。本文将对这三个概念进行区分。指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同。函数指针就是一个指向函数的指针,本质上是一个指针,只是这个指针指向的对象是函数,而不是一般意义上的存储对象。
全栈程序员站长
2022/06/25
3.2K0
构造函数为什么一般不定义为虚函数?而析构函数一般写成虚函数的原因 ?
1)因为创建一个对象时需要确定对象的类型,而虚函数是在运行时确定其类型的。而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型,是类本身还是类的派生类等等
kdyonly
2023/03/03
7440
十分钟成为 Contributor 系列 | 为 TiDB 重构 built-in 函数
PingCAP
2017/06/23
1.1K0
十分钟成为 Contributor 系列 | 为 TiDB 重构 built-in 函数
相似的像素保持在同一组中的梯度的函数的应用。
Week_05_Lec_03_Code.m I = imread('circuit.tif'); rotI = imrotate(I, 33, 'crop'); BW = edge(rotI, 'canny'); [H, T, R] = hough(BW); imshow(H, [], 'XData', T, 'YData', R, 'InitialMagnification', 'fit'); xlabel('\theta'), ylabel('\rho'); axis on, axis normal,
裴来凡
2022/05/28
6550
相似的像素保持在同一组中的梯度的函数的应用。
JavaScript重构技巧-降低函数复杂度
JavaScript 是一种易于学习的编程语言,编写运行并执行某些操作的程序很容易。然而,要编写一段干净的JavaScript 代码是很困难的。
前端小智@大迁世界
2020/06/03
8840
JavaScript重构技巧-让函数简单明了
JavaScript 是一种易于学习的编程语言,编写运行并执行某些操作的程序很容易。然而,要编写一段干净的JavaScript 代码是很困难的。
前端小智@大迁世界
2020/05/28
1.1K0
重构-改善既有代码的设计:简化函数调用 (八)
大力提倡的一种编程风格是:将复杂的处理分解成小函数。但是,如果做得不好,这会使你费尽周折却弄不清楚这些小函数各自的用途。要避免这种麻烦,关键就在于给函数起一个好名称。函数的名称应该准确表达它的用途。给函数命名有一个好办法:首先考虑应该给这个函数写上一句怎样的注释,然后想办法将注释变成函数名称。
黄规速
2022/04/14
5240
重构-改善既有代码的设计:简化函数调用 (八)
函数(一)(函数的基本概念)
程序设计中的“函数”是从英文“function”翻译过来的,从其意义上来说,函数带有功能的含义,也就是说程序中定义一个函数的目的是让它完成一定的功能,并且这个功能在程序中会多次被使用。通常对一个复杂问题进行程序设计时,会采用分解法把问题分解为多个相对独立的子问题,每个子问题对应程序的一个功能模块。
pigeon
2022/04/11
3680
函数(一)(函数的基本概念)

相似问题

将一个大函数重构为函数中的函数?

29

将循环重构为函数

40

将代码重构为一个函数

10

使用'#region‘作为快速修复,以避免重构为较小的函数

111

将多个jQuery on click函数重构为一个函数

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档