编程小记:Python中的Optional

今天写程序的时候遇到了一个小问题
在对函数定义参数的时候,Optional[int]和int有什么区别?
如下:

height: Optional[int] = None,
width: Optional[int] = None,
num_inference_steps: int = 50,

在Python中,Optional[int]int之间的区别在于他们对变量的预期类型和可接受的值。

Optional[int]

  • 含义:Optional[int] 表示一个变量可以是整数 (int) 或者 None
  • 用途:当你希望一个变量能够接受 None 作为有效值时,可以使用 Optional[int]。

示例:

from typing import Optional

def example(width: Optional[int] = None):
    if width is not None:
        print(f"The width is {width}")
    else:
        print("Width is not specified")

example()  # 输出 "Width is not specified"
example(10)  # 输出 "The width is 10"

int

  • 含义:int 表示一个变量必须是整数类型。
  • 用途:当你希望一个变量只能接受整数值时,可以使用 int。

示例:

def example(num_inference_steps: int = 50):
    print(f"Number of inference steps: {num_inference_steps}")

example()  # 输出 "Number of inference steps: 50"
example(100)  # 输出 "Number of inference steps: 100"

区别总结

  1. 类型约束:
    • Optional[int] 允许 None 作为有效值。
    • int 不允许 None 作为有效值。
  2. 类型检查:
    • 使用 Optional[int] 时,类型检查器会确保变量要么是整数,要么是 None。
    • 使用 int 时,类型检查器会确保变量始终是整数。
  3. 默认值
    • 当你为参数指定默认值 None 时,使用 Optional[int] 更加合适,因为它明确表明 None 是一个有效的选项。
    • 如果你没有为参数指定默认值,或者默认值不是 None,那么使用 int 即可。
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容