【问题标题】:What does it mean when you assign int to a variable in Python?在 Python 中将 int 赋值给变量是什么意思?
【发布时间】:2015-08-19 22:58:44
【问题描述】:

即x = int

我知道如果 x 还不是一个整数,这将使它成为一个整数,但我想了解这背后的过程。特别是,我想知道int 是什么(而不是int())。我知道int() 是一个函数,但我不确定int 是什么。指向有关 int 的文档的链接会很有帮助,因为我找不到任何文档。

【问题讨论】:

  • “我知道如果 x 还不是一个整数,这将使 x 成为一个整数”——它不会。

标签: python variables int type-conversion


【解决方案1】:

假设你有一个名为func的函数

def func():
    print("hello from func")
    return 7

如果您随后将func 分配给x,则您将函数本身分配给x不是调用的结果

x = func # note: no ()
x() # calls func()
y = x() # y is now 7

在这种情况下,您正在查看与 int 非常相似的事情。

x = int
y = x('2') # y is now 2

【讨论】:

  • 为这样一个简单的好例子投票!不过我从来没有注意到它!
  • 我还建议对于 int/float 等基本内容,这是一个非常糟糕的主意。它只会降低代码的可读性。
【解决方案2】:

x = int 不会将x 变成整数。 int 是整数类型。执行x = int 会将x 设置为int 类型的值。粗略地说,x 将成为整数类型的“别名”。

如果您调用 int 类型,例如int('2'),它会将您提供的内容转换为整数,如果可以的话。如果您将该调用的结果分配给一个变量,它将将该变量设置为您从调用int 获得的整数值。所以设置x = int('2') 会将x 设置为2。

您应该阅读the Python tutorial 以了解类型、变量和调用在 Python 中的工作原理。

【讨论】:

  • 很好的问题,然后是一个漂亮的答案
  • 是不是类似于 C 语言中的“typedef”?
  • @d-coder:只是非常非常松散。在 Python 中,类型(和函数,以及几乎所有东西)都是一流的对象,就像整数、字符串和列表一样。所以,Python 不需要像typedef 这样的东西。您所做的只是为同一个对象创建另一个名称。对象恰好是一个类型这一事实是无关紧要的;这与x = 2 为2 对象创建另一个名称没有什么不同。
猜你喜欢
  • 2016-07-11
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 2015-07-07
相关资源
最近更新 更多