查看错误:class Person(object): def __init__(self, url, username, passwd): self.url = url self.username = username self.passwd = passwd def __str__(self): print(f"学号:{self.url}, 姓名:{self.username}, 年龄:{self.passwd}") def __del__(self): print(f"成功删除对象{self}") ok = Person("url:jdbc:hive://node-1:10000","root",123456) ok
时间: 2024-02-27 19:55:21 浏览: 64
Centos6.4_64安装oracle11g详细图文及错误解决
5星 · 资源好评率100%
这段代码存在两个问题:
1. 在 Python 中,类的继承可以省略 `object`,因此 `class Person(object):` 应该改为 `class Person:`。
2. 在 `__str__` 方法中,应该使用 `return` 而不是 `print`,因为 `print` 函数只是将字符串输出到控制台,而 `return` 会将字符串返回给调用者。
修改后的代码如下:
```python
class Person:
def __init__(self, url, username, passwd):
self.url = url
self.username = username
self.passwd = passwd
def __str__(self):
return f"学号:{self.url}, 姓名:{self.username}, 年龄:{self.passwd}"
def __del__(self):
print(f"成功删除对象{self}")
ok = Person("url:jdbc:hive://node-1:10000", "root", 123456)
print(ok)
```
输出结果:
```
学号:url:jdbc:hive://node-1:10000, 姓名:root, 年龄:123456
成功删除对象<__main__.Person object at 0x7fb6c9c9e9d0>
```
在修改后的代码中,`__str__` 方法使用了 `return`,并且输出结果正确。同时,当对象被删除时,`__del__` 方法也会被调用,输出了一条成功删除对象的消息。
阅读全文