2016-10-25 25 views
2

我不明白是什么意思arg: str是什么意思两点和args后一类:高清FUNC(价值:STR)

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


hello('something') 

我认为这是一个specifing类型,但我试着打你好,我没有任何异常。我试图拨打helloint,没有错误。

我已经做了一些测试,但我还没有想出什么...

什么,这是做任何想法?

马特

+0

@ŁukaszRogalski因为它问的参数类型,特别是暗示这可能是一个不同的问题。 – Tankobot

回答

2

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

额外的音符,这些类型的提示都存储在功能__annotations__下:

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

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

所以,它只是为了帮助开发人员,如果它不是正确的类型,python不会给出该死的... – math2001

+0

@ math2001准确地说。你的程序将会执行或不执行类型提示。 – Tankobot

相关问题