在Python中,如何将空值传递给字符串参数?
我收到以下错误/警告:在Python中,如何将空值传递给字符串参数?,python,string,null,pycharm,Python,String,Null,Pycharm,我收到以下错误/警告: 如何在Python中将空值传递给字符串参数?使用None关键字定义空值,或者根本不定义值。None与0、False或空字符串不同。None是它自己的数据类型(NoneType),并且只有None可以是None 在下面的代码中,您已将name参数上的键入设置为strNone不是str(字符串),因为它属于自己的NoneType class MyClass: def __init__(self, name: str): self.__name = n
如何在Python中将空值传递给字符串参数?使用
None
关键字定义空值,或者根本不定义值。None与0、False或空字符串不同。None是它自己的数据类型(NoneType),并且只有None可以是None
在下面的代码中,您已将name
参数上的键入设置为str
None
不是str
(字符串),因为它属于自己的NoneType
class MyClass:
def __init__(self, name: str):
self.__name = name
my_obj = MyClass(None)
如果希望接受字符串,但也允许使用None
类型,则可以使用Union:
class MyClass:
def __init__(self, name: str):
self.__name = name
my_obj = MyClass(None)
在Python3.10中,还可以编写:str | None
。你可以
另一种选择是可选:
from typing import Union
class MyClass:
def __init__(self, name: Union[str, None]):
self.__name = name
my_obj = MyClass(None)
None
关键字用于定义空值,或者根本不定义值。None与0、False或空字符串不同。None是它自己的数据类型(NoneType),并且只有None可以是None
在下面的代码中,您已将name
参数上的键入设置为str
None
不是str
(字符串),因为它属于自己的NoneType
class MyClass:
def __init__(self, name: str):
self.__name = name
my_obj = MyClass(None)
如果希望接受字符串,但也允许使用None
类型,则可以使用Union:
class MyClass:
def __init__(self, name: str):
self.__name = name
my_obj = MyClass(None)
在Python3.10中,还可以编写:str | None
。你可以
另一种选择是可选:
from typing import Union
class MyClass:
def __init__(self, name: Union[str, None]):
self.__name = name
my_obj = MyClass(None)
你不能创建一个空的构造函数吗?或者使用默认参数?不能创建一个空构造函数吗?或者使用默认参数?为什么不使用可选
?如果您查看我的修订历史记录,第一个版本的编辑建议为可选。我重新阅读了OP的问题,觉得(可能是错误的)他会感激str | None
,因为它更明确。还是添加了可选的解决方案。谢谢为什么不使用可选
?如果您查看我的修订历史记录,第一个版本的edit建议为可选。我重新阅读了OP的问题,觉得(可能是错误的)他会感激str | None
,因为它更明确。还是添加了可选的解决方案。谢谢