Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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_String_Null_Pycharm - Fatal编程技术网

在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
,因为它更明确。还是添加了可选的解决方案。谢谢