python函数之一:函数传入可变和不可变对象,要注意

liftword4个月前 (02-17)技术文章32

先说对象类型,再说函数传入不同类型需要注意的地方


1、python对象类型

  • 不可变对象:数字、字符串、元组、布尔(编辑属于新建对象)
    相同数据占用一块内存
    如:a=1; b=1; a和b的内存地址一样,就一个对象1,没有创建新对象(没有开辟新内存)
    编辑对象
    如:a=1; a=2; 等于创建新对象(开辟新内存)
  • 可变对象:列表,集合,字典(编辑属于原地操作)
    一个对象占一块内存
    如:a=[1,2]; b=[1,2]; a和b的内存地址不一样,两个新对象(开辟2块新的内存))
    编辑对象
    如:a=[1,2]; a.append(3); a的内存地址不变,还是一个对象(内存扩充)

不可变对象的理解



可变对象的理解



2、函数传入不同类型对象(传入后一般对象都会经过加工)

  • 传入不可变对象:加工后原来的对象不变。
    相同数据占用一块内存
  • 传入可变对象:加工后改变原来的对象。
    未生成新对象,再次使用被影响后的对象,要特别注意已经发送变化

传入不可变类型对象-原对象不变



传入可变类型对象-原对象变化


相关文章

python极简教程:对象的方法_python对象的含义

这一场,主讲python的面向对象的第二部分—— 对象的方法 。目的:掌握Python对象的五个核心方法。init和new讲解之前,先上一段代码class Demo: def __init__...

Python类和对象详解_python中的类和对象,属性和方法

Python中的类(Class)和对象(Object)是面向对象编程的核心概念。通过类来定义对象的属性和行为,而对象则是类的实例。1. 类(Class)类是用来创建对象的模板,它定义了对象的属性(数据...

python初识对象_python对象编程

使用对象组织数据1.在程序中设计表格,我们称之为:设计类(class)class Student: name = None # 记录学生姓名2.在程序中打印表格,我们称之为:创建对...

你需要理解的Python核心概念-对象

对象是 Python 语言的构建块Python 很容易学习。然而,它有一些更难理解的方面,比如类和对象的世界。在本文中,你将学到:在 Python 中一切都是对象如何创建自己的类和对象什么是继承以及如...

如何用 Python 构建一个决策树_python决策结构

本文最初发布于 Medium 网站,经原作者授权由 InfoQ 中文站翻译并分享。决策树是一个经久不衰的话题。本文要做的是将一系列决策树组合成一个单一的预测模型;也就是说,我们将创建集成方法(Ense...

Python 如何创建一个 JSON 对象_python创建一个person类

我们可以使用下面的代码来在 Python 中创建一个 JSON 对象。import json data = {} data['key'] = 'value' json_data = json.dum...