【问题标题】:Explicitly declaring a variable type in Python在 Python 中显式声明变量类型
【发布时间】:2010-10-28 10:06:23
【问题描述】:

我使用pyscripter 进行编码,它支持自动完成。所以,当我说:

a = []
a.

它给了我所有的列表功能。与字符串类似,我做b=''。

但对于file 类型,我必须使用file. 并选择函数并写入其参数,然后将file 替换为变量名。

有没有办法在 Python 中显式声明变量类型,让我的 IDE 更有用?

【问题讨论】:

  • 为了取悦 IDE 而编写糟糕的 Python 代码对我来说听起来不是一个好主意...
  • 一旦您在代码中使用了a.your_attribute,pyDev-eclipse 将在按下 后继续显示该属性。使用 CTRL + SPACE 在列表中,具有智能!!!
  • 如果你必须让你的 IDE 绝对有用,你必须将 python 变成 java .. 包括明确指定类型。
  • 我目前正在从 C#/Java 切换到 Python,动态类型似乎产生的问题比它们解决的问题多得多。他们只是觉得一团糟,倒退了一步。
  • 大多数体面的 Python IDE 在您键入 obj. 时会自动显示对象上可能的方法:Eclipse、spyder、Wing、Canopy...

标签: python pyscripter


【解决方案1】:

从 Python 3 开始,您可以按类型显式声明变量:

x: int = 3

或:

def f(x: int):
    return x

【讨论】:

  • 如果我在明确声明为int 后为其分配一个字符串,是否会引发警告或异常?
【解决方案2】:

Python 没有类型声明。 Python 3 引入了一种名为 function annotations 的东西,Guido 有时将其称为“不是类型声明的东西”,因为它最明显的用途是提供类型信息作为提示。

正如其他人所提到的,各种 IDE 在自动完成方面做得更好或更差。

【讨论】:

    【解决方案3】:

    如果你想在一个类型上调用方法......你总是可以在 python 控制台中使用 dir(var)......

    【讨论】:

    • +1 我认为这是正确的答案。以艰难的方式学习可用的方法并戒掉肚子痛。
    • @aaronasterling 多么愚蠢。 “工作比你必须要更努力,因为 Python 和 Javascript 之类的语言使事情变得比他们必须的更困难。”
    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多