Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何指定可以是整数或字符串的类型_Python_Typing_Function Parameter - Fatal编程技术网

Python 如何指定可以是整数或字符串的类型

Python 如何指定可以是整数或字符串的类型,python,typing,function-parameter,Python,Typing,Function Parameter,我有一个函数,它的参数应该是整数或字符串 from typing import int,str def MyFunc(arg:int) -> None: print(arg) 但是我想知道如何编写它来告诉用户arg可以是int和str?一个选项是 def MyFunc(arg:"int or str") -> None: print(arg) def MyFunc(arg:[int,str]) -> None: print(arg) 另一个选择是

我有一个函数,它的参数应该是整数字符串

from typing import int,str

def MyFunc(arg:int) -> None:
    print(arg)
但是我想知道如何编写它来告诉用户arg可以是int和str?

一个选项是

def MyFunc(arg:"int or str") -> None:
    print(arg)
def MyFunc(arg:[int,str]) -> None:
    print(arg)
另一个选择是

def MyFunc(arg:"int or str") -> None:
    print(arg)
def MyFunc(arg:[int,str]) -> None:
    print(arg)
一个选择是

def MyFunc(arg:"int or str") -> None:
    print(arg)
def MyFunc(arg:[int,str]) -> None:
    print(arg)
另一个选择是

def MyFunc(arg:"int or str") -> None:
    print(arg)
def MyFunc(arg:[int,str]) -> None:
    print(arg)

首先,我认为不需要使用导入,因为
int
str
是基本类型

除此之外,我的解决方案是(python3)


这是标准方法,它还允许您使用类型检查器,如
mypy
Union
关键字表示您的参数可以是方括号内的任何一种类型。

首先,我认为您不需要使用导入,因为
int
str
是基本类型

除此之外,我的解决方案是(python3)



这是标准方法,它还允许您使用类型检查器,如
mypy
Union
关键字表示您的参数可以是方括号内的任何一种类型。

谢谢。但是第二个示例并不意味着arg类型是list?通常,如果要指定参数是list,可以编写
def MyFunc(arg:list)->None
Aha。非常感谢。:)非常感谢。但是第二个示例并不意味着arg类型是list?通常,如果要指定参数是list,可以编写
def MyFunc(arg:list)->None
Aha。非常感谢。:)谢谢但是你能告诉我arg:Union[int,str]和arg:[int,str]之间有什么区别吗?我也知道我不需要输入,但你知道用户是这样的。他们只是认为我不知道键入的是什么,所以他们关闭了我的问题,并将其引用到另一个:)基本上是:符号之后的内容被解释为python的类型,在运行时不使用。你可以把大部分东西放在那里,它不会抱怨。使用Union是更好的方法,因为它是定义类型的通用方法,并且可以由类型检查器解析。具有arg:“int或str”不能被选中,因此除了文档之外,其他内容都是无用的。但是你能告诉我arg:Union[int,str]和arg:[int,str]之间有什么区别吗?我也知道我不需要输入,但你知道用户是这样的。他们只是认为我不知道键入的是什么,所以他们关闭了我的问题,并将其引用到另一个:)基本上是:符号之后的内容被解释为python的类型,在运行时不使用。你可以把大部分东西放在那里,它不会抱怨。使用Union是更好的方法,因为它是定义类型的通用方法,并且可以由类型检查器解析。有arg:“int或str”不能被检查,所以除了文档之外是无用的,这就是为什么
打印
输入
存在的原因。没有dude。这只是一个例子,我的函数是其他的,好吧,对不起..这就是为什么
print
input
存在的原因。没有伙计。这只是一个例子,我的函数是其他的,好的,对不起。。