gpt4 book ai didi

python - _init_ 方法中没有类型

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:45 25 4
gpt4 key购买 nike

我是 python 初学者。我无法理解 None 类型的简单事物。当我在构造函数中为我的参数分配 None 值时。我得到错误。这是什么把戏。错误代码:

class A(object):
def __init__(self):
self.root = None

def method_a(self, foo):
if self.root is None:
print self.root + ' ' + foo


a = A() # We do not pass any argument to the __init__ method
a.method_a('Sailor!') # We only pass a single argument

错误:

Traceback (most recent call last):
File "C:/Users/Dmitry/PycharmProjects/Algorithms/final_bst.py", line 11, in <module>
a.method_a('Sailor!') # We only pass a single argument
File "C:/Users/Dmitry/PycharmProjects/Algorithms/final_bst.py", line 7, in method_a
print self.root + ' ' + foo
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

只要我在 init 中将 None 类型更改为字符串变量之类的东西,它就可以正常工作。

最佳答案

错误__init__中,但稍后在您尝试打印的表达式中:

print self.root + ' ' + foo

您可以使用 + 来连接字符串,但是 None 不是字符串。

因此,使用字符串格式:

print '{} {}'.format(self.root, foo)

或者,更不优雅的是,显式地制作一个字符串:

print str(self.root) + ' ' + foo

关于python - _init_ 方法中没有类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28933422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com