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

Python函数大小的权衡

有人说函数应该尽可能简短,不要超过一屏能容纳的长度。与长达几百行的函数相比,只有十几行的函数确实比较容易理解,但将大函数拆分成多个小函数也有缺点。下面我们来具体看下,在实际工作中,如何权衡大小函数。...小函数有哪些优点? 函数的代码更容易理解; 函数可能需要较少的参数; 函数不太可能有副作用; 函数更容易测试和调试; 函数引发的不同种类的异常数量要少 小函数有哪些缺点?...编写简短的函数往往意味着程序中会有更多的函数; 拥有更多的函数意味着程序更加复杂; 拥有更多的函数也意味着必须想出更多的具有描述性的、准确的名称,这是一个难题; 使用更多的函数需要写更多的文档进行说明;...函数之间的关系会更复杂 通过上面的优缺点,我们可以看到,函数并非越短越好,我们在实际编写代码时,最好能够把代码行数控制在一个合理的范围内。...在我看来,函数最好少于30行,至多不超过200行。应该让函数在合理范围内尽可能短,但不要过分短。小函数可能会让函数变得更简单,但程序的整体复杂性会急剧上升,维护的成本也将上升。

34120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3个用于提效的Python函数,建议收藏!!

    Python作为一种编程语言,在人们的日常工作与生活中应用地愈加广泛,有些人将其用来做爬虫、数据分析与可视化,也有不少人用它来做机器学习与深度学习建模预测。...为了避免敲打出复杂而又冗长的代码,今天小编就来和大家分享一下Python当中可以提效的三个函数方法,希望大家可以喜欢。...x**2/2 然后我们将其放入map()函数当中并且作用于列表当中的每一个元素, data = [1,3,5,7,9,12] list(map(num_func, data)) # 输出为:[0.5,...,但上述操作实在太过于繁琐,比方说先定义一个函数 def bigger_than_15(x): return x > 15 紧接着将其放置于filter函数当中并且作用于列表中的每一个元素 data...,filter()函数将列表中大于15的元素都给筛选出来 reduce() reduce()函数稍稍与前两者有所不同,map()与filter()函数结果返回的都是一组数据,而reduce()函数返回的则是单个数值

    71120

    python基础之函数模块的创建

    ---- 一、背景   实际开发过程中,经常会遇到很多完全相同或者非常相似的操作,这时,可以将实现类似操作的代码封装为函数,然后在需要的地方调用该函数。...这样不仅可以实现代码的复用,还可以使代码更有条理性,增加代码的可靠性。下面我们来介绍一下python的函数模块的创建相关内容。...---- ---- 二、模块的创建   在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件名。   ...例如:现有一个文件“test.py”,其中定义了求较小值的函数minimal()。...在这里插入图片描述 ---- 三、参考 1、廖雪峰的官网 2、python官网 3、Python编程案例教程 ---- 四、总结   以上就是就是关于Python的函数模块的创建相关知识,可以参考一下,

    35320

    如何学python 第10课 创建自己的函数

    在上一节课里,我们学习了一些关于错误检测和错误处理的知识。这节课我们来学习函数。我们将会介绍什么是函数,以及如何创建函数。 函数是什么?...函数是一系列指令的集合,创建完成后你就能通过函数的名称方便的调用这些函数。这一系列指令的集合最终会返回一些什么。 ? 另外一点需要注意的是,在函数里声明的变量与在函数外声明的变量不太一样。...举例来说,如果我们给一个变量赋值“Null-byte”,那么我们可以在脚本程序的任意位置调用这个变量;这样的变量就叫做全局变量。...Python正是通过这样的方式来标记这一行代码是函数的一部分的。 写好了函数之后,我们会对函数进行调用(call): ? 函数正常运行了。...最后,它返回的greeting变量被print了出来。 小结 今天我们学习了如何创建自定义函数。自定义函数可以让我们的函数更加的简洁明了,增加了代码的复用性。

    980120

    关于自己创建一个函数实现大小写字母之间的转换。

    概要 在C语言中,我们常用ASCII码来表示字母或其他字符,AASCII码是一种用于文本通信的字符编码标准,其中包含了128个字符,包括大小写字母,数字和一些字符, 在ASCII码中,大写字母的值的范围为...如何进行构建 1.首先,我们可以定义一个函数,用于大小写字母的转换,函数声明如下: char toUpper(char c); 其中,’char‘表示返回值的类型,’toUpper‘表示我们定义的函数,...例如,我们输入一个字符串’hello,world‘ 就会得到一个大写的‘HELLO WORLD’。 构建过程 首先进行我们的第一步,创建一个函数,进行小写字母到大写字母的转换。...小结 在上述代码中,首先我们声明了’toUpper‘函数的原型,然后,在主函数中定义了一个字符数组’str‘, 用于存储用户输入的字符串,然后循环逐个字符调用toUpper函数进行转换,最后,输出转换之后的字符串...在上述中,我们成功使用自己定义的一个函数,实现了对大小写字母的转换,在后续中,我们也可以通过编写 一个函数来实现自己的需求。

    20310

    如何在Python 3中安装pygame并创建用于开发游戏的模板

    本教程将首先将pygame安装到您的Python编程环境中,然后引导您创建一个模板以使用pygame和Python 3开发游戏。...创建游戏循环 随着pygame的导入和初始化,显示集以及游戏界面的更新,我们可以开始处理我们的主游戏循环。 我们将创建一个运行游戏的while循环。...X”时退出,或者如果用户按下了一个键,即退出键或Q键(注意这不区分大小写)。...结论 本教程引导您完成将开源模块pygame安装到Python 3编程环境中,以及如何通过设置可用于控制Python游戏主循环的模板来开始游戏开发。...想要了解更多关于安装pygame并创建用于开发游戏的模板的相关教程,请前往腾讯云+社区学习更多知识。

    25.2K22

    【说站】python字符串大小写转换的3种函数

    python字符串大小写转换的3种函数 说明 1、title()方法用于将字符串中每个单词的第一个字母转换成大写。 所有其他字母成小写。转换完成后,该方法将返回转换得到的字符串。...如果字符串中没有需要转换的字符,该方法将原封不动地返回字符串。 2、lower()用于将字符串中的所有大写字母转换成小写字母。 转换完成后,该方法将返回新的子串。...3、upper()用于将字符串中的所有小写字母转换成大写字母。 如果转换成功,返回新字符串;反之,返回原字符串。...字符串大小写转换的3种函数,希望对大家有所帮助。...更多Python学习指路:python基础教程 本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。 收藏 | 0点赞 | 0打赏

    1.1K20

    每个数据科学家都应该知道的20个NumPy操作

    NumPy (Numerical Python)是一个科学计算包,它提供了许多创建和操作数字数组的方法。...第一个参数决定了范围的上限。下界默认为0,但我们也可以指定它。size参数用于指定所需的大小。 ? 我们创建了一个由2到10之间的整数组成的3x2数组。 2. 0到1之间的随机浮点数 ?...浮点数在0和1之间的一维数组。可以用于创建随机噪声数据。 3. 一个标准正态分布的样本 randn()用于从一个标准正态分布(即零均值和单位方差)创建一个样本。 ?...Arange Arange函数用于在指定的时间间隔内创建具有均匀间隔顺序值的数组。我们可以指定起始值、停止值和步长。 ? 默认的起始值是零,默认的步长是1。 ? 7....重塑 使用reshape函数,它会对数组进行重塑。A的形状是(3,4)大小是12。 ? 可以指定每个维度上的大小,只要保证与原大小相同即可 ? 我们不需要指定每个维度的大小。

    2.4K20

    Python 小白的晋级之路 - 第十三部分:创建函数

    工控技术分享平台 1、引言 函数是一种可重复使用的代码块,可以接收输入参数并返回输出结果。通过函数,我们可以将程序的逻辑划分为模块,提高代码的可读性和可维护性。...在本节中,我们将学习如何定义函数、使用参数和返回值、处理全局变量以及异常处理。 2、定义函数 在 Python 中,使用def关键字来定义函数。...在以上示例中,我们定义了一个函数greet(),它不接收任何参数,函数体内输出一条简单的问候语。 3、使用参数 函数可以接收参数,以便传递数据给函数。在函数定义时,我们可以指定参数的名称和类型。...你可以尝试编写更多的函数来加深理解,并尝试处理其他类型的异常情况。 8、总结 我们了解到了函数的概念以及如何在 Python 中定义函数、使用参数和返回值、处理全局变量以及异常处理。...通过学习函数的相关概念和用法,你可以更好地组织和重用代码,并能够优雅地处理异常情况。继续实践和探索更多的函数概念将有助于你在 Python 编程中更加熟练和自信。

    9010

    Python多线程编程基础3:创建线程与调用函数的区别

    在上一节Python多线程编程基础2:如何创建线程中,我们已经知道,创建线程并运行实际上也是执行一段代码,那么把这些代码封装到函数中之后,直接调用函数和创建线程再运行有什么区别呢?...这是本文要解释的内容。...简单地说,调用函数属于阻塞模式,必须要等函数运行结束并返回之后才能执行后面的代码;而线程属于并发非阻塞模式,创建并启动子线程之后子线程和主线程并发执行,除非有现成同步的代码和机制。...下面代码首先定义一个函数,然后调用这个函数,函数执行结束之后再继续执行后面的代码: from threading import Thread from time import sleep def demo...(n): sleep(n) print(n) demo(3) print('ok') 运行结果为: 3 ok 而下面的代码首先定义函数,然后创建线程来执行这个函数中的代码: from threading

    1.3K80

    匿名字典还是dict()函数: Python中字典创建方式的选择

    1、问题背景在 Python 中,当您要将一个字典的值传递给函数,或以其他方式使用一个不会被重复利用的临时字典时,有两种简单的方法可以做到这一点:一种是使用 dict() 函数创建字典:foo.update...它还确保了当我必须添加一个不能表示为 Python 名称的键(比如带有空格的键)时,我不必重新编写整行。答案3:我的回答主要是关于使用字典和关键字参数设计 API。...但它也适用于 {…} 和 dict(…) 的单独使用。要点:保持一致性。...答案8:我认为 dict() 函数真正存在是为了让您可以从其他内容(也许是一些可以轻松生成必要关键字参数的内容)创建字典。...总之,在 Python 中使用 dict() 函数还是匿名字典来创建字典,很大程度上取决于个人喜好和具体的使用场景。dict() 函数可以更明确地指定键值对,而匿名字典则更简洁直观。

    12410

    python038_ range函数_大小写字母的起止范围_start_stop

    range函数_大小写字母的起止范围_start_stop 回忆上次内容 所有字符 都有序号 就连 空格 也不例外空格 序号32是 print函数中 sep参数的 默认值添加图片注释,不超过 140...除了 小写字母外 还有 很多字符 的都分布 在哪儿 呢?...把这些连续的 数字 输出出来呢?...range 从最大到最小的范围添加图片注释,不超过 140 字(可选)如何理解rangehelp(range) 查看帮助 range函数 可以生成范围(range)内的整数range(5)中 只有一个参数...总结 这次 了解了 小写字母的 序号范围大写字母的 序号范围添加图片注释,不超过 140 字(可选)接触了 range 根据range函数的结果生成了for循环range(start, stop)可以输出

    7710

    学习笔记DL005:线性相关、生成子空间,范数,特殊类型矩阵、向量

    x、y是方程组的解,z=αx+(1-α),α取任意实数。 A列向量看作从原点(origin,元素都是零的向量)出发的不同方向,确定有多少种方法到达向量b。向量x每个元素表示沿着方向走多远。...一组向量任意一个向量都不能表示成其他向量的线性组合,线性无关(linearly independent)。某个向量是一组向量中某些向量的线性组合,这个向量加入这组向量不会增加这组向量的生成子空间。...矩阵必须是一个方阵(square),m=n,且所有列向量线性无关。一个列向量线性相关方阵为奇异的(singular)。矩阵不是方阵或是奇异方阵,方程可能有解,但不能用矩阵逆求解。...衡量向量大小。L⁽p⁾:||x||p=(sumi|xi|⁽p⁾)⁽1/p⁾。p∈ℝ,p>=1。范数(L⁽p⁾范数),向量映射到非负值函数。向量x范数衡量从原点到点x距离。...对角方阵的逆矩阵存在,当且仅当对角元素都是非零值,diag(v)⁽-1⁾=diag(1/v1,…,1/vn⫟)。根据任意矩阵导出通用机器学习算法。

    1.5K10

    Numpy中常用的10个矩阵操作示例

    数据科学和机器学习所需的数学知识中,约有30-40%来自线性代数。矩阵运算在线性代数中占有重要的地位。Numpy通常用于在Python中执行数值计算,并且对于矩阵操作做了特殊的优化。...这些函数的输入是两个向量它们的大小应该是一样的。...行列式(决定式) 方阵的行列式可以计算det()函数,该函数也来自numpy linalg包。如果行列式是0,这个矩阵是不可逆的。在代数术语中,它被称为奇异矩阵。...逆 方阵的逆可以通过numpy linalg包的inv()函数找到。如果方阵的行列式不为0,它的逆矩阵就为真。...在本篇文章中我们介绍了numpy10个常用的矩阵运算。Numpy有一些通用函数,也有一些专门用于线性代数的特殊函数,例如,linalg包有一些专门用于线性代数的特殊函数。

    2.1K20

    如何使用Python中的装饰器创建具有实例化时间变量的新函数方法

    1、问题背景在Python中,我们可以使用装饰器来修改函数或方法的行为,但当装饰器需要使用一个在实例化时创建的对象时,事情就会变得复杂。...例如,我们想要创建一个装饰器,可以创建一个新的函数/方法来使用对象obj。如果被装饰的对象是一个函数,那么obj必须在函数创建时被实例化。...如果被装饰的对象是一个方法,则将obj绑定到self。如果被装饰的对象是一个函数,则实例化obj。返回一个新函数/方法,该函数/方法使用obj。...A的方法f以及函数myfunc、myfunc2和myfunc3上。...请注意,这种解决方案只适用于对象obj在实例化时创建的情况。如果obj需要在其他时间创建,那么您需要修改此解决方案以适应您的具体情况。

    9210
    领券