gpt4 book ai didi

python - <__main__.Animal 对象位于 0x037D07B0> 错误 python 3

转载 作者:行者123 更新时间:2023-12-01 04:25:39 24 4
gpt4 key购买 nike

尝试进行分配并卡在内存地址上。我想出了两种不同的方法来克服这个问题,但这两种方法都不完全可行......

这是我尝试的一个例子(我认为我不允许在线发布我的代码)

class example(object):
def __init__(self,string1,integer1):
self.string1 = string1
self.integer1 = integer1

def __repr__(self):
print('-------------------------')
print('#' + self.integer1 + '' + '-' + ' ' + string1)
print('-------------------------')

I want it to print like this:

-------------------
# 5 - hello
-------------------

如果我使用 repr 方法,我会收到“无法将 'int' 对象隐式转换为 str ”错误。如果我使用 str 方法,则会出现内存错误如果我尝试使用 return,我不能,因为它需要返回多行。

我需要保持每个对象变量的类型相同,并且我只需要输出而没有内存错误......

希望这个问题不太难(或者很简单:P),我对 python 3 中的 OOP 还很陌生。

提前致谢。

最佳答案

当您使用+时对于字符串连接,您不能将字符串添加到整数。示例-

>>> 5 + 'asd'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Python是强类型语言,在字符串连接时它不会自动将整数转换为字符串。

您应该使用一些字符串格式化方法,例如 str.format() .

另外,需要注意的另一件事是您需要从 __repr__() 返回值。而不是打印它。然后,如果您希望将其打印在控制台中,您应该调用 print(a) (或 Python 2.x 中的 print a)。示例-

class example(object):
def __init__(self,string1,integer1):
self.string1 = string1
self.integer1 = integer1
def __repr__(self):
return ("-------------------------\n"
"#{} - {}\n"
"-------------------------").format(self.integer1,self.string1)
<小时/>

演示 -

>>> class example(object):
... def __init__(self,string1,integer1):
... self.string1 = string1
... self.integer1 = integer1
... def __repr__(self):
... return ("-------------------------\n"
... "#{} - {}\n"
... "-------------------------").format(self.integer1,self.string1)
...
>>> a = example('hello',5)
>>> print(a)
-------------------------
#5 - hello
-------------------------

关于python - <__main__.Animal 对象位于 0x037D07B0> 错误 python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33185181/

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