python赋值是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python赋值是啥?相关的知识,希望对你有一定的参考价值。

Python中的赋值是一种语句,是将创建的一个数据对象,然后通过变量对这个值进行引用,变量即代表这个值,后面对这个数据的操作都通过这个变量来完成,这就是赋值。 参考技术A

python赋值是将某一数值赋给某个变量的过程。

将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。注意很多语言都使用“等于号”(即“=”)来作为赋值号,所以可能和和平时的理解不同,在使用的时候应予以注意。

python赋值语句介绍:

赋值语句的左边是一个变量,右边是一个可计算得到某个值的表达式,表达式的值将会被存储到该变量中。

第一次给变量赋值时,会创建变量并使用那个值进行初始化。定义之后,该变量就可以在另一个语句中使用了,例如:print(cansPerPack),会输出cansPerPack变量中存储的值。

参考技术B 赋值是一种语句,是将创建的一个数据对象,然后通过变量对这个值进行引用,变量即代表这个值,后面对这个数据的操作都通过这个变量来完成,这就是赋值语句的意义

在 Python 程序中记录每个变量赋值的类型的最佳方法是啥?

【中文标题】在 Python 程序中记录每个变量赋值的类型的最佳方法是啥?【英文标题】:What's the best way to record the type of every variable assignment in a Python program?在 Python 程序中记录每个变量赋值的类型的最佳方法是什么? 【发布时间】:2009-05-05 02:52:08 【问题描述】:

Python 是如此动态,以至于在大型程序中发生的事情并不总是很清楚,而且查看一小部分源代码并不总是有帮助。更糟糕的是,编辑器往往对导航到 Python 文件中的标记定义或导入语句的支持很差。

一种补偿方法可能是编写一个特殊的分析器,而不是为程序计时,它会记录程序对象的运行时类型和路径,并将这些数据公开给编辑器。

这可以通过 sys.settrace() 来实现,它为每一行代码设置一个回调,并且是 pdb 的实现方式,或者通过使用 ast 模块和导入钩子来检测代码,或者有更好的策略?你如何写这样的东西而不让它变得非常慢,并且不会与极端的活力发生冲突,例如对财产访问的副作用?

【问题讨论】:

将“大”程序分解成更小的函数和类定义以便查看一小部分源代码有什么帮助?分解和重构有什么问题?为什么这些技术不起作用? 我正在开发的系统不是“几个星期来重构”的大。这是“几年重构”的大。我没有那种时间。 【参考方案1】:

我认为你不能让它变慢,但是当你遇到 STORE_FAST STORE_NAME STORE_* 操作码时应该可以检测到每个变量的地址。

以前有没有做过,我不知道。

如果您需要调试,请查看PDB,这将允许您逐步执行代码并访问任何变量。

import pdb
def test():
    print 1
    pdb.set_trace() # you will enter an interpreter here
    print 2

【讨论】:

【参考方案2】:

如果您对object 的类或其他原型对象进行猴子修补怎么办?

如果您不使用新式类,这可能不是最简单的。

【讨论】:

【参考方案3】:

您可能想查看PyChecker 的代码 - 它确实(我认为)您想要做的事情。

【讨论】:

【参考方案4】:

Pythoscope 所做的事情与您所描述的非常相似,它使用 AST 形式的静态信息和通过 sys.settrace 的动态信息的组合。

顺便说一句,如果您在重构项目时遇到问题,请尝试使用 Pythoscope。

【讨论】:

以上是关于python赋值是啥?的主要内容,如果未能解决你的问题,请参考以下文章

c语言赋值是啥?

复合 let/const 赋值是啥意思?

Python 类中的列表理解范围规则是啥? [复制]

verilog中时序逻辑和非阻塞赋值的内在联系是啥? 都说时序逻辑用非阻塞赋值,这是啥决定的?

赋值运算符的返回类型是啥?

c++重载赋值操作符的返回值是啥?