首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python入门到放弃 | 超简单 跟我学(七)

    当调用函数时,用同样的方式提供值。函数定义时括号中的参数叫做形参,而调用函数时提供的参数叫实参。...当声明一个带星号的参数 *param 时,从这个参数开始,之后的所有参数都会被收集进入一个名为 param 的元组中。...return语句 return 语句用于从一个函数 返回,即跳出这个函数。也可以从函数跳出时返回一个值,返回值是可选的。...当给函数提供两个数字作为参数时,maximum 函数会返回参数中的最大值。它用一对简单的 if..else 语句来找到并返回最大值。...注意没有返回值的 return 语句等价于 return None。None 在 Python 是一种代表「没有任何东西」特殊的类型。

    42640

    Swift入门:扩展

    扩展允许我们以一种非常干净的方式修改Swift的数据类型以添加新的功能——我们的新代码与现有代码没有区别。 让我们从一个扩展开始,它将一个扩展添加到一个整数。...该扩展名已添加到所有整数,因此您甚至可以这样 调用它: 5.plusOne() 完成此操作后,您将在输出列中看到 6。 我们的扩展在其输入值上加1并将其返回给调用方,但不修改原始值。...为了实现这一目标,您可能会认为我们需要执行以下操作: extension Int { func plusOne() { self += 1 } } 这会删除返回值,因为我们现在不返回任何东西...在某些方面,扩展与子类相似,那么为什么要使用扩展? 主要原因是可扩展性:扩展适用于所有数据类型,并且当您拥有多个扩展类型时,它们不会冲突。...使用扩展,您可以在十个不同的文件中具有十个不同的功能-它们都可以直接修改同一类型,并且您无需继承任何子类。

    1.1K10

    码如其人,小老弟,你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...我并不同意这种观点,因为在操作成功完成时,函数可以返回 True。 「我需要返回多个值,因为只返回一个值并不能代表什么。」 当然也可以返回包含多个值的一个元组。...简而言之,即使在现有的代码库中,从函数返回一个值肯定是一个好主意,并且不太可能破坏任何东西。 函数长度 函数的长度直接影响了可读性,因而会影响可维护性。因此要保证你的函数长度足够短。...每次调用这个函数时,它都可能返回不同的值。如果它被调用两次,则用户可以第一次输入 3,第二次输入 7,使得对 add_three() 的调用分别返回 6 和 10。 为什么幂等很重要?

    48520

    干货 | 如何写一个更好的Python函数?

    当给定函数没有返回值时,有一些常见的原因: “它所做的只是[一些与I / O相关的事情,比如将一个值保存到数据库中]。我不能返回任何有用的东西。” 我不同意。如果操作顺利完成,函数可以返回True。...“我需要返回多个值。单独返回一个值是没有意义的。” 可以使用元组返回多个值。 总是返回一个有用的值,调用者总是可以自由地忽略它们。...幂等函数很容易测试,因为在使用相同的参数时,它们总是返回相同的结果。 测试仅仅是检查通过不同调用返回值的预期值。更重要的是,这些测试很快,这是单元测试中一个重要且经常被忽视的问题。...例如,如果上面add_three(number)的幂等版本在返回结果之前打印了结果,那么它仍然被认为是幂等的,因为当它访问I / O流时,这个访问与从函数返回的值无关。...纯函数没有日志语句或print ( )调用。它们不使用数据库或互联网连接。它们不访问或修改非局部变量。它们不调用任何其他非纯函数。

    60720

    笨办法学 Python · 续 练习 30:有限状态机

    如果你忘记了else子句,那么你的if-elif条件没有覆盖的任何东西都会退回默认。 让我们将其拆解: 你拥有状态,这是 FSM 当前所在位置的存储指示器。...一个事件甚至可以回到同一个状态,这是你循环的方式。 根据发生的事件,FSM 从一个状态转换到另一个状态,并且仅仅由于为状态提供的确切事件(尽管其中一个事件可以定义为“任何事件”)。...有时候“没有”也是一个事件。这很好很强大,因为这意味着即使没有发生任何事情,你也可以将 FSM 转换到新的状态。然而,实际上,“没有”往往是隐含的事件“再来一次”或“醒来”。...看看我有时候为下一个状态返回函数,但其​​他时候我会返回一个状态函数的调用?试着弄清楚为什么我会这样做,因为它在 FSM 中非常重要。...最后,你可以使用一个设计,其中有一个FSMRunner类,它只知道如何运行这样设计的模块。这比一个知道如何运行自身实例的单一类有一些优点,但也有一些问题。例如,FSMRunner如何跟踪当前状态?

    51320

    码如其人,同学你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...简而言之,即使在现有的代码库中,从函数返回一个值肯定是一个好主意,并且不太可能破坏任何东西。 函数长度 函数的长度直接影响了可读性,因而会影响可维护性。因此要保证你的函数长度足够短。...以下展示了非幂等的函数示例: 这函数不是幂等的,因为函数的返回值依赖于 I/O,即用户输入的数字。每次调用这个函数时,它都可能返回不同的值。...如果它被调用两次,则用户可以第一次输入 3,第二次输入 7,使得对 add_three() 的调用分别返回 6 和 10。 为什么幂等很重要? 可测试性和可维护性。

    46020

    干货 | 如何写一个更好的Python函数?

    当给定函数没有返回值时,有一些常见的原因: “它所做的只是[一些与I / O相关的事情,比如将一个值保存到数据库中]。我不能返回任何有用的东西。” 我不同意。如果操作顺利完成,函数可以返回True。...“我需要返回多个值。单独返回一个值是没有意义的。” 可以使用元组返回多个值。 总是返回一个有用的值,调用者总是可以自由地忽略它们。...幂等函数很容易测试,因为在使用相同的参数时,它们总是返回相同的结果。 测试仅仅是检查通过不同调用返回值的预期值。更重要的是,这些测试很快,这是单元测试中一个重要且经常被忽视的问题。...例如,如果上面add_three(number)的幂等版本在返回结果之前打印了结果,那么它仍然被认为是幂等的,因为当它访问I / O流时,这个访问与从函数返回的值无关。...纯函数没有日志语句或print ( )调用。它们不使用数据库或互联网连接。它们不访问或修改非局部变量。它们不调用任何其他非纯函数。

    61010

    怎样才能写好一个 Python 函数

    当给定函数没有返回值时,有一些常见的原因: “它所做的只是[一些与 I/O 相关的事情,比如将一个值保存到数据库中]。我不能返回任何有用的东西。” 我不同意。...“我需要返回多个值。单独返回一个值是没有意义的。” 可以使用元组返回多个值。 总是返回一个有用的值,调用者总是可以自由地忽略它们。 5....幂等函数很容易测试,因为在使用相同的参数时,它们总是返回相同的结果。 测试仅仅是检查通过不同调用返回值的预期值。更重要的是,这些测试很快,这是单元测试中一个重要且经常被忽视的问题。...例如,如果上面 add_three(number)的幂等版本在返回结果之前打印了结果,那么它仍然被认为是幂等的,因为当它访问 I / O 流时,这个访问与从函数返回的值无关。...纯函数没有日志语句或 print()调用。它们不使用数据库或互联网连接。它们不访问或修改非局部变量。它们不调用任何其他非纯函数。

    57620

    码如其人,同学你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...简而言之,即使在现有的代码库中,从函数返回一个值肯定是一个好主意,并且不太可能破坏任何东西。 函数长度 函数的长度直接影响了可读性,因而会影响可维护性。因此要保证你的函数长度足够短。...以下展示了非幂等的函数示例: 这函数不是幂等的,因为函数的返回值依赖于 I/O,即用户输入的数字。每次调用这个函数时,它都可能返回不同的值。...如果它被调用两次,则用户可以第一次输入 3,第二次输入 7,使得对 add_three() 的调用分别返回 6 和 10。 为什么幂等很重要? 可测试性和可维护性。

    58930

    Python 自动化指南(繁琐工作自动化)第二版:三、函数

    这个变量在函数调用hello('Bob')返回后被销毁,所以print(name)会引用一个不存在的name变量。 这类似于当程序终止时程序的变量被遗忘。...返回值和返回语句 当您调用len()函数并给它传递一个参数,比如'Hello'时,函数调用会计算出整数值5,这是您传递给它的字符串的长度。一般来说,函数调用求值的值被称为函数的返回值。...当a()被调用 ➎ 时,它调用b()➊,后者又调用c()➌。c()函数不调用任何东西;它只显示c() starts、➍ 和c() returns,然后返回到b()中称其为 ➌ 的行。...如果进行了另一个函数调用,Python 会将另一个帧对象放在调用栈中的另一个之上。 当函数调用返回时,Python 从栈顶移除一个帧对象,并将执行移动到存储在其中的行号。...每当调用一个函数时,就会创建一个局部作用域。函数中分配的任何变量都存在于函数的局部作用域内。当函数返回时,局部作用域被破坏,这些变量被遗忘。

    97220

    码如其人,同学你能写一手漂亮的Python函数吗

    当一个函数可以被删除时,事情就好办了:如果其他地方发生改动,不再需要该函数的单一功能,那么只需将其删除。 举个例子来解释一下。...以下是人们在被问及为什么他们写的函数没有返回值时给出的一些常见原因: 「函数所做的就是类似 I/O 的操作,例如将一个值保存到数据库中,这种函数不能返回有用的输出。」...我并不同意这种观点,因为在操作成功完成时,函数可以返回 True。 「我需要返回多个值,因为只返回一个值并不能代表什么。」 当然也可以返回包含多个值的一个元组。...简而言之,即使在现有的代码库中,从函数返回一个值肯定是一个好主意,并且不太可能破坏任何东西。 函数长度 函数的长度直接影响了可读性,因而会影响可维护性。因此要保证你的函数长度足够短。...每次调用这个函数时,它都可能返回不同的值。如果它被调用两次,则用户可以第一次输入 3,第二次输入 7,使得对 add_three() 的调用分别返回 6 和 10。 为什么幂等很重要?

    49420

    理解std::move和std::forward

    std::move无条件的将它的参数转换成一个右值,而std::forward当特定的条件满足时,才会执行它的转换。...假设你正在写一个类,它用来表示注释。此类的构造函数接受一个包含注释的std::string做参数,并且将此参数的值拷贝到一个数据成员上,你声明一个接收by-value参数的构造函数。...当我们用lvalue调用logAndProcess时,我们自然地期望: forward给process的也是一个lvalue,当我们用rvalue来调用logAndProcess时,我们希望process...这就是为什么std::forward被称作是一个条件转化(conditional cast):当参数被rvalue初始化时,才将参数转化为rvalue....从一个纯粹是技术的角度来说,答案是肯定的:std::forward是可以都做了,std::move不是必须的。

    1.8K21

    【Python篇】Python 类和对象:详细讲解(下篇)

    协议是“非正式”的接口,它不要求显式地继承任何东西,只需要类实现了协议中的方法。...fly(self) -> None: -> None 的意思是这个方法不返回任何值。None 是 Python 的一种特殊类型,表示什么都没有。...如果没有 @ 符号,你需要手动将函数传给装饰器。使用 @ 符号时,装饰器会在函数定义之后立即应用,不需要手动传递。...# 故意引发一个异常 详细解释 enter: 当你进入 with 语句时,__enter__ 方法会被自动调用。你可以在这里做一些初始化操作。...exit: 当 with 语句结束时,__exit__ 方法会被调用。这个方法接受三个参数:exc_type(异常类型)、exc_val(异常值)、exc_tb(异常的追踪信息)。

    12810

    Python学习手册之内部方法、操作符重

    = __gt__ 表示运算符 > __ge__ 表示运算符 >= 如果类没有实现 __ne__ ,则返回 __eq__ 相反的值。其他运算符之间没有这样的关系。...对象生命周期 一个对象会经历三个生命周期:创建,操作,销毁。 对象生命周期的第一阶段是它类变量和方法的定义。 接下来下一阶段是这个实例的实例化。当 __init__ 被调用是,内存分配给存储实例。...当一个对象被销毁时,分配给它的内存会被释放,并可以用于其他目的。 当对象的引用计数达到零时,对象将销毁。引用计数是指引用对象的变量和其他元素的数量。...如果没有任何变量引用它(它的引用计数为零),意味着没有任何东西可以与其交互,因此可以安全地删除它。在此也可以被删除。del 语句将对象的引用计数减少一个,这通常会导致对象被删除。...当使用 del 删除对象时,对象的引用计数会减少。当对象的引用计数达到零时,Python 会自动删除它。

    40310

    Python学习手册之数据封装、类方法、

    它认为 "我们都是成年人",这意味着你不应该对类的访问设计任意的限制。因此,没有任何方法强制方法或属性是严格私有的。 但是,还是有一些方法可以阻止人们访问类的内部私有成员。...类方法 目前为止,我们所看到调用对象的方法都是有类的一个实例调用的,然后传递给方法的 self 参数。 类方法是不同的 -- 它们由一个类调用,该类被传递给方法的 cls 参数。...而是通过类的方法调用,它返回类 cls 的一个新对象。 从技术上将,self 和 cls 参数只是约定;它可以更改为其他任何东西。但是,这种约定被大多数人遵循。...这意味着当访问同名的实例属性时,将调用该方法。 class Animal(): def __init__(self, name, age): self._name = name self....dog Age: 0 >>> “为什么在这个世界上,有95%的人会无法成功,而只有那少数的5%会成功,因为大多数人的心里存在着这三个字:不可能。”

    67130

    ​Python 之父的解析器系列之三:生成一个 PEG 解析器

    self.expect(STRING): return string.string return None 注意 ENDMARKER ,它用来确保在最后一条规则后没有遗漏任何东西...我放了一个简单的箭头,指向了 grammar() 方法的返回值位置,返回结果是一个存储 Rule 的列表。 其余部分跟上篇文章中的 ToyParser 类很相似,所以我不作解释。...包装器会缓存每次调用解析方法后的结果——这就是为什么它会被称为“口袋老鼠解析”(packrat parsing)! 这缓存是一个字典,元素是存储在 Parser 实例上的那些字典。...再次调用相同的解析方法时(在相同的位置,使用相同的参数),我们会从缓存中取出那两个结果,并用 self.reset() 来向前移动输入位置,最后返回那缓存中的返回值。...缓存负数的结果也很重要——实际上大多数对解析方法的调用都是负数的结果。在此情况下,返回值为 None,而输入位置不会变。你可以加一个assert 断言来检查它。

    75520

    某大型国企Java岗位面试题,你能做出几道?

    多态允许我们通过父类引用来指向子类对象,实现在运行时决定具体调用哪个类的方法,这是面向对象编程中的一个核心概念。...尽管Cat类重写了speak方法返回"Meow",但特定于Cat的方法purr返回"Purr"。 题目中的要求可能有些误导,因为Speakable接口或Animal类中都没有purr方法。...然而,既然问题是要speak()返回"Purr",实际上只有通过具体地调用Cat类的purr方法才能实现,这意味着应该直接创建一个Cat对象。...正确的答案取决于对问题的理解,但按照字面意义,没有一个选项能直接使speak()返回"Purr",因为purr是Cat类特有的方法,而不是Speakable接口或Animal类的一部分。...这个问题强调了在设计面向对象系统时清晰和准确地理解类之间关系的重要性,以及多态在动态方法调用中的作用。 题目三、 假设你有一个包含数百万条记录的MySQL数据库表orders。

    34510

    day24

    :对扩展性要求高的程序 面向过程: 优点:复杂问题简单化,流程化 缺点:扩展性极低,牵一发动全身,维护性相比OOP低 使用场景:对扩展性要求低的程序 将程序员从一个具体的操作者转变为指挥者...用于为对象的属性设置初始值 特点: ``` # 执行时机:当实例化产生对象时会自动执行该函数 # 会自动传入需要初始化的对象 # 初始化必须包含至少一个参数 用于表示对象本身 # 该函数不允许有返回值...为什么要绑定: 每个应用程序其实本质上都是在处理数据,那就必须明确 要处理的数据在哪里,如何处理 绑定方法的好处在于,将需要处理的数据 以及处理数据的方法绑定在一起,这样一来 当你获得一个对象就同时获得...数据以及 相应的处理方法 ,简单的调用即可 ### 绑定方法与普通函数的区别 当使用类调用时,就是一个普通函数 有几个参数就得传几个参数 当用对象来调用时,是一个绑定方法了,会自动将对象作为第一个参数传入...谁调用都不会自动传参 ## 在使用面向对象编程时 首先要想的时 需要什么对象,这些对象具备什么样的属性和什么样的行为,根据属性和行为创建对应的类

    28810
    领券