【问题标题】:What does mean two points and a class after args: def func(value:str) [duplicate]args之后的两点和一个类是什么意思:def func(value:str)[重复]
【发布时间】:2016-10-25 06:12:19
【问题描述】:

我不明白arg: str 是什么意思

def hello(arg: str):
    print(type(arg))
    print('do stuff!', arg)


hello('something')

我以为是在指定类型,但我试着打了个招呼,没有任何异常。我尝试使用int 调用hello,没有错误。

我已经做了一些测试,但我没有想出任何东西......

知道这是做什么的吗?

马特

【问题讨论】:

  • @ŁukaszRogalski 这可能是一个不同的问题,因为它专门询问参数类型提示。

标签: python parameter-passing


【解决方案1】:

你是正确的def hello(arg: str): 确实为参数指定了一个类型。但在 Python 中,它只提供类型提示。这意味着理论上您可以将任何类型的实例传递给函数。类型提示对于开发和 IDE 很有用,因为它可以帮助程序在您将意外参数传递给函数时通知您。

额外注意,这些类型提示存储在__annotations__下的函数中:

In [1]: def f(arg: int):
   ...:     return arg
   ...: 

In [2]: f.__annotations__
Out[2]: {'arg': int}

【讨论】:

  • 所以,这只是为了帮助开发人员,如果它不是正确的类型,python 不会在乎......
  • @math2001 没错。您的程序将在有或没有类型提示的情况下执行。
猜你喜欢
  • 1970-01-01
  • 2010-09-22
  • 2014-02-24
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 2021-02-14
  • 2017-06-30
相关资源
最近更新 更多