SICP-1.4-函数设计

何为好的函数

  • 每个函数只完成一个工作
  • 不要做重复工作
    • 如果你多次复制一段代码块,说明你应该进行函数抽象了
  • 定义一般化函数
    • 避免特例化
  • 函数说明
    • 一般通过三引号说明
    • help调出函数说明
  • 避免过多的参数
    • 设定参数默认值
  • def pressure(v, t, n=6.022e23):
            """Compute the pressure in pascals of an ideal gas.
    
            v -- volume of gas, in cubic meters
            t -- absolute temperature in degrees kelvin
            n -- particles of gas (default: one mole)
            """
            k = 1.38e-23  # Boltzmann‘s constant
            return n * k * t / v
时间: 2024-10-08 15:01:17

SICP-1.4-函数设计的相关文章

js函数设计原则

一般认为函数指具有返回值的子程序,过程指没有返回值的子程序.C++中把所有子程序成为函数,其实那些返回值为void的 函数在语义上也是过程.函数与过程的区别更多是语义上的区别,而不是语法的区别. 语言纯化论者认为一个函数应该只有一个返回值,这和数学函数一样.即函数只接受输入(参数),通过参数运算返回结果. 除此之外的效果被称为函数的副作用,比如修改全局变量. function sum1(x, y) { return x+y }function sum2(x, y) { alert(x+y) }s

Python函数设计原则

在任何编程语言中,函数的应用主要出于以下两种情况: 代码块重复,这时候必须考虑用到函数,降低程序的冗余度 代码块复杂,这时候可以考虑用到函数,增强程序的可读性 当流程足够繁杂时,就要考虑函数,及如何将函数组合在一起.在Python中做函数设计,主要考虑到函数大小.聚合性.耦合性三个方面,这三者应该归结于规划与设计的范畴.高内聚.低耦合则是任何语言函数设计的总体原则. 如何将任务分解成更有针对性的函数从而导致了聚合性 如何设计函数间的通信则又涉及到耦合性 如何设计函数的大小用以加强其聚合性及降低其

函数设计应做到低耦合,高内聚

最近,同项目组的一位师姐请产假了,由我接手她之前的部分版本的开发工作.在开发的过程中,我阅读了某个很古老的版本的程序代码,心生感触,想在这里啰嗦几句. 该版本中很多函数的调用关系都错综复杂,让人读起来非常的费劲.我用如下的图来形象化地表示这种函数之间的调用关系. 箭头的指向为调用关系,如"函数A"调用了"函数B"."函数C"."函数D"."函数E"."函数F",以此类推. 当函数之间的调

回调函数设计方法

引入: 你显示器不亮了,你不知道怎么弄,那你就问在外地干IT的大表哥,你大表哥告诉你修理的方法,然后需要你自己来操作. 你大表哥知道怎么弄,但是自己不去弄,而是由你去弄. 换句话说,你大表哥实现了修理你显示器的方法,但他不会自己去调用,而是由你去调用.那么你大表哥告诉你的修机器的方法就是回调函数. 在这个比喻里,你自己 作为主调方,有实际的需求--修显示器,但是没有方法,求教表哥的时候,表哥给你的方法 就是一个 函数地址,当你按照大表哥的方法执行的时候,就是 执行了一个回调函数了. 在工程设计中

你好,C++(29)脚踏两只船的函数不是好函数 5.4 函数设计的基本规则

5.4  函数设计的基本规则 函数是C++程序的基本功能单元,就像一块块砖头可以有规则地垒成一座房子,而一个个函数也可以有规则地组织成一个程序.我们在大量使用他人设计好的函数的同时,也在设计大量的函数供自己或他人使用.一个设计良好的函数,概念清晰职责明确,使用起来将非常容易,可以很大程度地提高我们的开发效率.反过来,一个设计糟糕的函数,概念不清职责不明,不仅难以使用,有时甚至会导致严重的错误.函数设计的好坏,成为评价一个程序员水平高低的重要标准.关于函数的设计,业界已经积累了相当多的经验规则.这

第三期 行为规划——12 成本函数设计和权重调整

成本函数设计的困难: 1.包括在不解决见问题的情况下解决新的问题.当你在自驾车上工作时, 你可能会发现车辆行为合理,除了一些特定的情况.也许它在红绿灯左转时没有足够的攻击性. 所以,为了解决这个问题,您可以添加新的成本函数,调整现有的或修改权重. 但每次你做,你有可能会介绍有些将变革转化为已经发挥作用的东西. 实际上,我们通过回归测试来解决这个问题,我们在那里定义一些情况, 每一个都有预期的行为.那么,每当我们做出改变,我们模拟整个车辆 我们的测试用例,并确保它仍然按预期行事.我们在这里不会多说

第48课 函数设计原则

函数设计原则: 函数应该是无状态的,就是第一次调用和第二次调用是一样的. getchar返回值是int型. 优秀代码欣赏:Eclipse代码 1 /******************************************************************************* 2 * Copyright (c) 2000, 2005 IBM Corporation and others. 3 * All rights reserved. This program a

C语言-第36课 - 函数递归与函数设计技巧

第36课 - 函数递归与函数设计技巧 一. 递归 递归概述 (1) 递归是数学领域中的概念在程序设计中的应用. (2) 递归是一种强有力的程序设计的方法. (3) 递归的本质为函数内部在适当的时候调用自身. 组成部分 (1)递归点:以不同参数调用自身. (2)出口:不在递归调用 下面就是求一个数的阶乘的函数: #include <stdio.h> int func(int x) { if( x > 1 ) { return x * func(x - 1);  //递归点 } else {

函数设计概念

耦合性:对于输入使用参数并且对于输出使用return语句.一般来讲,需要力求使函数独立于它外部的东西.参数和return语句通常就是隔离对代码中少数醒目位置的外部的依赖关系的最好办法. 耦合性:只有在真正必要的情况下使用全局变量.全局变量通常是一种蹩脚的函数间进行通信的办法.它们引发了以来关系和计时的问题,会导致程序调试和修改的困难. 耦合性:不要改变可变类型的参数,除非调用者希望这样做.函数会改变传入的可变类型的对象,但是就像全局变量一样,这会导致很多调用者和被调用者之间的耦合性,这种耦合性会

jquery函数设计

Jquery设计文档 Author:xu_shuyi 2015-03-24 08:32:30 1.window.onload与$(document).ready() window.onload :必须等待网页中所有的内容加载完毕后(包括图片)才能执行,并且不能编写多个. $(document).ready():网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完,并且能够编写多个. 2.解决jquery库与其他库之间冲突 var $j = jQuery.noConflict