Python 变量 Variable 动态绑定
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python 变量 Variable 动态绑定,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1604字,纯文字阅读大概需要3分钟。
内容图文
为何 Python 变量没有 Data Type 概念 ? 可以与任意 Data Type 绑定?
Python 变量 Variable 与其他程式语言不同之处在于:
> variable 不是对内存地址 ram address 的引用,而是对 data 的引用
> variable 被重新 assign 新値时,Python 新分配此data 存储空间,而 variable 指向此新的地址
例如: 启动 Python时,其 name space 如下:
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <cl
ass '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {
}, '__builtins__': <module 'builtins' (built-in)>}
当将 5 给 X 时,其先分配 5 这存储空间,此空间的位置地址为 8791319470864,而 X 存储此地址,指向 5 这物件:
>>> X = 5
>>> id(X)
8791319470864
所以 name space 存在一个 variable 其 value 为 5
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <cl
ass '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {
}, '__builtins__': <module 'builtins' (built-in)>, 'X': 5}
当重新指定 X 为字串 'Hello' 时,Python 会分配存储空间给 'Hello',其空间所在的地址为 35659880,而 X 存储此地址,指向 'Hello':
>>> X = 'Hello'
>>> id(X)
35659880
再次查看全域 Global 命名空间,发现 X 指向的値为最新的 'Hello',之前的値 5 已不在被指引了。但,物件 5 仍存储在 RAM 中。
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <cl
ass '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {
}, '__builtins__': <module 'builtins' (built-in)>, 'X': 'Hello'}
>>> id(5)
8791319470864
结论:
Python 的变量 variable 是动态绑定,即在 Run Time 执行中才动态绑定,这与 C / C++ / Java 不同。后者在编译 compiling 即绑定,为静态绑定,绑定后不能更改资料型态 data type。
内容总结
以上是互联网集市为您收集整理的Python 变量 Variable 动态绑定全部内容,希望文章能够帮你解决Python 变量 Variable 动态绑定所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。