【问题标题】:Understanding Python Syntax / Notation理解 Python 语法/符号
【发布时间】:2017-08-29 02:35:38
【问题描述】:

我有 C++ 背景,在某些情况下理解 Python 有点困难。例如,在使用 Tkinter 的 GUI 应用程序中,您可能有:

button = Button (master, option=value, ...)

我知道代码在做什么(创建一个 Button 对象),但我正试图找出确切的细节。我猜button 正在成为指向Button 对象的指针,而Button (master, option=value, ...) 是对构造函数的调用,但很难看到,因为我习惯于显式数据类型和new 运算符.不过我的猜测可能完全错误。

【问题讨论】:

  • 您是否尝试过阅读任何 Python 书籍的前几章,或者阅读过 Python 教程?您的问题中没有任何内容是特定于 tkinter 的。

标签: python syntax


【解决方案1】:

在提出这个问题之前,我浏览了几个指南和文档,但偶然发现了答案here:

"在顶层窗口或名为 parent 的框架中创建按钮:

w = tk.Button(parent, option=value, ...)

构造函数返回新的 Button 小部件。"

所以它似乎只是一个普通对象(非指针),构造函数返回一个Button 对象给它。

【讨论】:

  • Python 中的所有名称都是对象的引用(指针),因此您在问题中的描述更正确。
  • 那么Python中没有非引用类型?
  • 有些类型是不可变的,这使得它们充当值类型,但 Python 中的所有名称都是对对象的引用。扩展模块可以提供更高效的存储机制(例如,Numpy 中的 C 或 Fortran 风格的打包值数组),但 Python 解释器只处理引用。
猜你喜欢
  • 2021-08-22
  • 2013-11-19
  • 2014-01-08
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-28
  • 2013-06-28
相关资源
最近更新 更多