相关疑难解决方法(0)

返回,返回无,根本没有返回?

考虑三个功能:

def my_func1():
  print "Hello World"
  return None

def my_func2():
  print "Hello World"
  return

def my_func3():
  print "Hello World"
Run Code Online (Sandbox Code Playgroud)

他们似乎都返回无.这些函数的返回值如何表现有什么不同?是否有任何理由更喜欢一个与另一个?

python null return

344
推荐指数
5
解决办法
25万
查看次数

Python void返回类型注释

在python 3.x中,通常使用函数的返回类型注释,例如:

def foo() -> str:
    return "bar"
Run Code Online (Sandbox Code Playgroud)

"void"类型的正确注释是什么?

我正在考虑3种选择:

  1. def foo() -> None:
    • 不合逻辑的IMO,因为None不是一个类型,
  2. def foo() -> type(None):
    • 使用我所知道的最佳语法来获取NoneType,
  3. def foo():
    • 省略显式返回类型信息.

选项2.对我来说似乎最合乎逻辑,但我已经看到了一些1的实例.

python annotations void type-hinting

65
推荐指数
2
解决办法
2万
查看次数

键入一个函数永远不会返回的提示

Python的新类型提示功能允许我们输入函数返回的提示None...

def some_func() -> None:
    pass
Run Code Online (Sandbox Code Playgroud)

...或者保留未指定的返回类型,PEP规定应该使静态分析器假定任何返回类型都是可能的:

任何没有注释的函数都应该被视为具有最普遍的类型

但是,我应该如何键入一个函数永远不会返回的提示?例如,键入提示这两个函数的返回值的正确方法是什么?

def loop_forever():
    while True:
        print('This function never returns because it loops forever')

def always_explode():
    raise Exception('This function never returns because it always raises')
Run Code Online (Sandbox Code Playgroud)

-> None在这些情况下,指定或保留未指定的返回类型似乎都不正确.

python type-hinting

17
推荐指数
2
解决办法
1616
查看次数

标签 统计

python ×3

type-hinting ×2

annotations ×1

null ×1

return ×1

void ×1