`

python默认参数的静态属性

 
阅读更多

def f(a, L=[]):
    L.append(a)
    return L
 
print f(1)
print f(2)
print f(3)
print f(4,['x'])
print f(5)

输出结果
[1]
[1, 2]
[1, 2, 3]
['x', 4]
[1, 2, 3, 5]

前面的好理解,为什么最后 “print f(5)”的输出是 “[1, 2, 3, 5]”呢?

这是因为 “print f(4,['x'])”时,默认变量并没有被改变,因为默认变量的初始化只是被执行了一次(第一次使用默认值调用),初始化执行开辟的内存区(我们可以称之为默认变量)没有被改变,所以最后的输出结果是“[1, 2, 3, 5]”。

 

参考地址:http://user.qzone.qq.com/286331225/blog/1329879846

分享到:
评论

相关推荐

    python类和函数中使用静态变量的方法

    Python中的默认参数值在函数定义时计算一次,因此可以利用这个特性创建一个“静态”变量。然而,这种方法需要注意的是,如果函数被多线程并发调用,可能会出现并发问题: ```python def foo3(i, L=[]): if len(L) ...

    Python 高级函数实训

    ### Python高级函数实训知识点 #### 一、闭包与计算平方根 闭包是一种特殊的函数类型,它能够访问其外部作用域内的变量。在Python中,闭包通常由以下三个特征构成: 1. **存在于两个嵌套关系的函数中**:意味着...

    Python 调用 C# 静态方法,非静态方法,传参

    在本场景中,我们将探讨如何使用 Python 调用 C# 的静态与非静态方法,并传递参数,以及如何处理返回的 `DataSet` 对象。我们将主要关注以下几点: 1. **Python 调用 C# 静态方法** - 在 C# 中,静态方法属于类...

    深入Python类:静态方法与类方法的较量

    ### 深入Python类:静态方法与类方法的较量 Python作为一种被广泛采用的高级编程语言,自1991年由Guido van Rossum首次发布以来,已经成为了许多领域内的首选工具。Python的设计理念非常注重代码的可读性和简洁性,...

    python函数速查手册,留作备用

    在这个Python函数速查手册中,我们主要探讨的是Python中的内建函数和字符串内置方法。 首先,让我们来了解一下内建函数。内建函数是Python语言自带的一系列预定义函数,可以直接在任何地方使用,无需额外导入。以下...

    Python安装文件 Python 3.8

    4. **类型注解改进**: Python 3.8支持在类声明中使用类型注解,使得类属性具有了类型提示,增强了代码的可读性和静态分析工具的准确性。 5. **f-string改进**: 现在,f-string中可以使用复杂的表达式,如`f"{x if x...

    Python内置函数案例演示.pdf

    由于提供的文件内容中包含了大量重复的警告和版权声明,并没有给出具体的Python内置函数的介绍和代码示例,所以无法从这部分内容中提炼出具体的知识点。不过根据标题和描述,我可以为你详细说明Python内置函数的相关...

    Python面向对象之静态属性、类方法与静态方法分析

    在Python面向对象编程中,静态属性、类方法与静态方法是核心概念之一。它们各自具有独特的定义和用途,在类的设计和编程实践中发挥着重要的作用。下面,我们将深入分析这三个概念,并结合实际代码示例来探讨如何在...

    Python-Pyright微软开源的Python语言的静态类型检查器

    1. 在函数定义时添加类型注解,Pyright会检查参数和返回值的类型是否正确。 2. 在访问类的属性或方法时,如果类型不匹配,Pyright会发出警告。 3. 对于导入的模块和第三方库,Pyright也可以基于类型声明进行检查。 ...

    Python基于类路径字符串获取静态属性

    在Python编程中,有时我们需要根据类的路径字符串来动态地获取类的静态属性。这个过程涉及到模块导入和对象属性操作。下面将详细解释如何通过类路径字符串获取静态属性,并探讨相关概念。 首先,我们来看标题中提到...

    python如何设置静态变量

    这个装饰器接受一个字典`**kwargs`作为参数,该字典包含要添加到函数的静态变量及其初始值。装饰器会遍历字典,将每个键值对作为属性添加到函数对象上。这样,每次调用装饰过的函数时,都可以访问并更新这些静态变量...

    Python程序设计题库

    3. 默认参数传递:函数定义时设定默认值,调用时可选。 文本文件和二进制文件在处理上有所不同: - 文本文件基于字符编码,如UTF-8,便于阅读,但读写需要转换时间。 - 二进制文件以0和1的二进制形式存储,直接读写...

    面向Python的函数调用路径静态提取方法研究.zip

    在AST中,`ast.Call`节点表示一个函数调用,它包含被调用的函数名(`func`属性)以及传递的参数(`args`属性)。通过分析这些节点,我们可以构建一个调用关系图(Call Graph),展示哪些函数调用了哪些其他函数。 ...

    Python Attributes and Methods

    与普通函数相比,方法的第一个参数通常是`self`,表示当前对象的引用,这让方法能够访问对象的属性和调用其他方法。 #### 实例方法 实例方法是最常见的方法类型,它们依赖于实例数据。当一个方法被定义在类中时,...

    python内置函数大全

    20. `staticmethod(), classmethod()`: 定义静态方法和类方法,这两者与普通方法的区别在于它们不接收隐含的第一个参数(self或cls)。 这只是Python内置函数的一部分,实际上还有更多功能丰富的函数等待探索。学习...

    python(类、静态、属性方法)_.mp4

    ython 类语法中有三种方法,实例方法,静态方法,类方法。 ps.python中self,cls的区别 普通实例方法,第一个参数需要是self,它表示一个具体的实例本身。 如果用了staticmethod,那么就可以无视这个self,而将这...

    Python3高级教程_python3_高级教程_电子版_

    Python3.5引入了类型注解,为函数参数和返回值添加静态类型信息,有助于代码的自我文档化,也可配合类型检查工具提升代码的健壮性。 六、上下文管理器 上下文管理器通过`with`语句实现资源的自动获取和释放,常用于...

    python面向对象课件

    在Python中,类是一种模板,用于定义一组属性(数据成员)和方法(函数)。通过类,我们可以创建具有相同属性和方法的对象。对象是类的实例,每个对象都有其独特的属性值。例如,你可以创建一个名为`Person`的类,...

    beginning-python-3ed-master_python教程_python教程_

    函数定义使用`def`关键字,支持默认参数、可变参数和关键字参数。 2. **Python 3进阶特性** - 类与对象:Python是面向对象的语言,支持类(class)的创建,通过类实例化对象。了解类的属性、方法以及继承、多态和...

    python所有函数大全

    Python函数是编程语言的核心组成部分,提供了丰富的功能,使得开发者能够高效地编写代码。在Python中,函数分为内置函数(Built-in Functions)、关键字、常量、类型以及异常等多个方面。以下是一些重要的Python内置...

Global site tag (gtag.js) - Google Analytics