python - 拥有许多不同的数据类型有什么好处?

标签 python types pyqt qwt

在一种语言中使用多种不同的数据类型有什么好处?我最近一直在使用 pyqt 和 pyqwt,我发现自己一直在输入这样的行:

grid.setPen(Qt.QPen(Qt.Qt.gray, 0, Qt.Qt.DotLine))
curve.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse,
                              Qt.QBrush(),
                              Qt.QPen(Qt.Qt.black),
                              Qt.QSize(5, 5)))

如果上面的行改为下面的行会丢失什么?:

grid.setPen('gray', 0 ,'dotted')
curve.setSymbol('ellipse', 'k', (5,5))

即使出于某些技术原因需要特定类型,也不能在需要它们的方法内将字符串转换为那些类型吗?

这是因为 pyqt 和 pyqwt 只是 C++ 库的绑定(bind)吗?如果是这样,为什么在 C++ 中需要它们?

最佳答案

有几个好处:

  1. 类型安全语言(如 C++)的优点是可以在编译时(相对于运行时)发现许多错误。这意味着使用 Qt.grey(注意 e)将无法编译,因为类型未定义。

  2. 更好的性能和更少的内存。 Qt.gray背后是数字,数字运算比字符串快很多。

在 pyqt 案例中,因为库包装了一个 C++ 库,所以它看起来更像 C++ 而不是 Python 代码。

关于python - 拥有许多不同的数据类型有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8687248/

相关文章:

haskell - GHCi 是否不应用默认声明来解决类型歧义?

python - 如何将文本文件(或字符串发送到 QML 中的 textArea)从 python 到 QML 应用程序?

python - 使用 xml.dom.minidom 删除 <?xml version ="1.0"?>

python - 通配Snakemake规则的预处理

list - 为什么 Haskell 基础库中没有 "non-empty list"类型?

Scala 类扩展了 {}

python - Selenium 的应用程序没有响应 - 不显示进度条,并且在任务完成之前不在控制台中发出文本

audio - 如何显示麦克风的当前音量?

python - celery 任务优先级

python - 沉默 "No handlers could be found for logger "paramiko.transport""消息