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

liftword5个月前 (02-17)技术文章34

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


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对象编程

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

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

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

Python 类和对象的概念_python中类和对象的区别

前言在面向对象的编程范式中,类和对象是两个核心概念。它们是构成程序逻辑的基础单元,也是实现代码复用和模块化的关键。Python作为一种高级编程语言,对面向对象编程提供了良好的支持。本文将深入探讨Pyt...

一文了解 Python 中的面向对象编程

Python 是一种多功能编程语言,支持多种编程范例,包括面向对象编程 (OOP) 和过程编程。这种灵活性使开发人员可以根据项目的具体需求选择最合适的范例,结合每种方法的优势来实现最佳结果。Pytho...

python类与对象_python类和对象的区别

在介绍python类与对象之前,首先需要了解面向过程编程和面向对象编程两种程序设计方法。面向过程编程OPP(Procedure Oriented Programming),是一种以事物为中心的编程思想...