返回顶部
首页 > 资讯 > 后端开发 > Python >为什么说python一切都是变量
  • 152
分享到

为什么说python一切都是变量

2023-06-16 04:06:22 152人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“为什么说python一切都是变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python中具有挑战性的概念之一是如何创建和

本篇内容介绍了“为什么说python一切都是变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Python中具有挑战性的概念之一是如何创建和分配变量。在编程中,有时使用盒子的类比。每个框是一个变量,该框的内容是它的值。这不是一个很好的类比,而且正如我稍后将要展示的那样,这可能会带来很大的问题,尤其是在考虑使用Python时。相反,最好将变量名称想象为标签。它们可以放在盒子上,但不包含任何东西。框(一个对象)保存该值。贴纸只是一个标签。此外,在任何盒子上都可以放置多个贴纸。简而言之,我们对Python中的对象而不是它们的名称进行了更改。

两个有用的函数:id()和type()

在下面的示例中,我将探索Python如何与各种可变且不可变的对象进行交互。为了全面检查其行为,我将广泛使用id()和type()函数。首先,让我们看一下这两个函数,以便我们了解它们的输出。id()将一个对象作为参数,并返回其id(一个数字)。在底层,这实际上是内存地址(在CPython实现中),C在其中存储对象。我们可以比较不同名称的ID,以查看它们是否指向同一对象,因为每个对象都有唯一的ID。我们稍后再讨论,但是现在,使用id()的简单示例:

>>> a = 5 >>> id(a) 10105216 >>> b = 10 >>> id(b) 10105376

现在,来看一下type()。与id()一样,type()将对象作为参数,但返回对象的类类型而不是其ID。随着我们开始挑选不同类型的对象及其可变性/不变性,这将派上用场。再次,让我们看一个简单的例子:

>>> msg = 'hello' >>> type(msg) <class 'str'> >>> age = 10 >>> type(msg) <class 'int'>

现在我们对type()和id()有了基本的了解,让我们使用它们来开始探索Python中可变和不可变的对象。

可变对象

可变对象是可以在Python中更改的对象。它们比不可变对象要少得多,包括:列表,集合和字典。他们有一些有趣的行为,乍一看似乎有些混乱。让我们看一些我的意思的例子:

>>> list1 = [1, 2, 3] >>> list2 = list1 >>> id(list1) 140336099032264 >>> id(list2) 140336099032264 >>> list2.append(4) >>> list1 [1, 2, 3, 4]

在这里,我们创建了一个名为list1的列表,然后为该列表分配了另一个名称(list2)。

这两个名称都指向同一个对象,如它们的共享ID所示。我们通过调用名称list2附加列表,然后使用list1打印列表。它打印出我们的新列表。

为什么?创建list2时,我们没有创建另一个对象,我们只是创建了另一个名称,该名称指向与list1相同的对象。方法不作用于名称,它们作用于对象。因此,当我们键入:“  list2.append

(4)”时,我们的意思是:“将4附加到list2指向的列表对象上”。如果我们想更改list2但不更改list1怎么办?好吧,我们必须先复制该列表。

>>> list1 = [1, 2, 3] >>> list3 = list1[:] >>> id(list1) 140336099032264 >>> id(list3) 140336098233352 >>> list3.append(4) >>> list1 [1, 2, 3]

我们复制了list1指向的对象,然后从该副本中创建了一个新对象。现在,当我们更改list3中的某些内容时,更改不会反映在list1中,因为我们没有更改同一对象。通过创建两个包含相同元素的列表可以证明同一件事。

>>> list1 = [1, 2, 3] >>> list2 = [1, 2, 3] >>> id(list1) 140397858622984 >>> id(list2) 140397851306184

每个元素(在这种情况下为整数)都是不可变的,但列表本身是可变的。我们可以根据需要添加,弹出和修改它们,并且不会对其他列表进行任何更改。对于不可变的对象,情况并非如此。

不变的对象

不可变的对象构成了我们将在Python中进行交互的大多数对象。它们包括字符串,整数,浮点数和元组之类的东西。让我们看一下最后一个示例,但是这次我们将使用两个字符串,而不是两个列表:

>>> string1 = "hello" >>> string2 = "hello" >>>id(string1) 140336098225712 >>>id(string2) 140336098225712

看到了么, string1和string2具有相同的ID,这意味着它们实际上是同一对象。怎么会这样  好吧,原因是因为字符串是不可变的。其他不可变对象也是如此:

>>> a = 5 >>> b = 5 >>> id(b) 10105216 >>> id(a) 10105216

现在,如果我们改变a的值,它的id应该改变

>>> a = 4 >>> id(a) 10105184

我们要做的是将我们的名字a放在一个新的int对象上。当我们重新分配一个指向不可变对象的名称时,这正是我们所做的。

函数中的可变和不可变对象

可变对象和不可变对象的属性使其具有不同的功能。尽管对可变对象的更改不在函数范围之内,但对不可变对象的更改则不存在。让我们看几个例子:

>>> def strFunc(oldString) ...     oldString = "Goodbye" ...      >>> oldString = "hello" >>> strFunc(oldString) >>> print(oldString) hello

我们更新了函数内部的字符串,但退出时仍保留其旧值。请注意,没有返回语句。如果我们一直在返回字符串并打印该值,那将是另一回事了。现在,让我们尝试对可变对象执行相同的操作:

>>> def listFunc(oldList) ...     oldList[0] = 'goodbye' ... >>> oldList = ['hello'] >>> listFunc(oldList) >>> print(ListFunc[0]) goodbye

在这种情况下,我们将可变对象发送到函数中。然后,我们更新了列表的成员,现在该更新存在于函数范围之外。

“为什么说python一切都是变量”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 为什么说python一切都是变量

本文链接: https://lsjlt.com/news/282294.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 为什么说python一切都是变量
    本篇内容介绍了“为什么说python一切都是变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python中具有挑战性的概念之一是如何创建和...
    99+
    2023-06-16
  • 为什么说MongoDB是一种趋势
    这篇文章将为大家详细讲解有关为什么说MongoDB是一种趋势,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、MongoDB是什么?  Mongo...
    99+
    2024-04-02
  • python环境变量是什么
    python环境变量是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎...
    99+
    2023-06-14
  • Java一切都是对象怎么理解
    这篇文章主要介绍“Java一切都是对象怎么理解”,在日常操作中,相信很多人在Java一切都是对象怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java一切都是对象怎么理解”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-03
  • python中为什么尽量少用全局变量
    这篇文章主要介绍了python中为什么尽量少用全局变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。尽量少用全局变量Python查找最快、效率最高的是局部变量,查找全局变量相...
    99+
    2023-06-27
  • Python中的变量与常量是什么
    这篇文章将为大家详细讲解有关Python中的变量与常量是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、变量、常量的区别变量:在程序运行过程中,值会发生变化的量。常量:在程序运行过程中...
    99+
    2023-06-25
  • python中什么是自由变量
    python中什么是自由变量?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开...
    99+
    2023-06-14
  • Python的变量和常量是什么意思
    本篇内容主要讲解“Python的变量和常量是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的变量和常量是什么意思”吧!一、什么是变量?变量从字面意思可以理解成:是变化的量。但...
    99+
    2023-06-15
  • jquery怎么判断一个变量是否为空
    本教程操作环境:Windows10系统、jquery3.2.1、Dell G3电脑。jquery怎么判断一个变量是否为空?JQuery判断是否为空//有如下三种判断 var A=$("#**).val(); if(A==null|...
    99+
    2023-05-14
    jquery 变量
  • laravel怎么检查一个变量是否为空
    这篇文章主要讲解了“laravel怎么检查一个变量是否为空”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel怎么检查一个变量是否为空”吧!在 Laravel 中,我们使用“is_n...
    99+
    2023-07-05
  • python保护变量指的是什么
    这篇文章给大家分享的是有关python保护变量指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要...
    99+
    2023-06-15
  • python中什么是变量作用域
    这篇文章给大家介绍python中什么是变量作用域,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动...
    99+
    2023-06-14
  • python局部变量指的是什么
    这篇文章将为大家详细讲解有关python局部变量指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、概念函数内部定义的变量称为局部变量,局部变量只能在定义函数内部使用。局部变量的作用域仅限于定义其...
    99+
    2023-06-15
  • python变量赋值规范是什么
    Python变量赋值的规范主要有以下几点:1. 变量名只能包含字母、数字和下划线,且不能以数字开头。2. 变量名不能包含空格和特殊字...
    99+
    2023-09-05
    python
  • python自由变量指的是什么
    这篇文章主要介绍“python自由变量指的是什么”,在日常操作中,相信很多人在python自由变量指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python自由变量指的是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • 什么是JavaScript变量
    这篇文章将为大家详细讲解有关什么是JavaScript变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。和其他可编程语言相同,JavaScript &nbs...
    99+
    2024-04-02
  • CSS变量是什么
    这篇文章主要讲解了“CSS变量是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS变量是什么”吧!CSS变量简介如今的浏览器开发似乎正好取代了流行的库...
    99+
    2024-04-02
  • C#变量是什么
    这篇文章主要介绍了C#变量是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#变量是什么文章都会有所收获,下面我们一起来看看吧。C# 变量一个变量只不过是一个供程序操作的存储区的名字。在 C# 中...
    99+
    2023-06-17
  • 什么是VBScript 变量
    这篇文章主要介绍“什么是VBScript 变量”,在日常操作中,相信很多人在什么是VBScript 变量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是VBScript 变量”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-08
  • JavaScript什么是包含变量的变量
    本篇内容主要讲解“JavaScript什么是包含变量的变量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript什么是包含变量的变量”吧! Jav...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作