:上面代码有错误:Expected QoSProfile or int, but received <class 'method'>
时间: 2024-04-15 15:28:30 浏览: 257
C++ 中 std::optional 与 std::expected 的深度辨析
对不起,我之前的回答有误。错误出现在`super()`的使用上。在Python中,`super()`应该是`super().__init__()`而不是`super()._init_()`。这是因为`super()`是用于调用父类的方法,而`__init__()`是构造函数的特殊方法。
所以需要将`def _init_(self,name):`修改为`def __init__(self,name):`,并将`super()._init_(name)`修改为`super().__init__(name)`。
修正后的代码如下所示:
```python
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class WriteNode(Node):
def __init__(self, name):
super().__init__(name)
self.get_logger().info("I am writer: %s" % name)
self.pub_novel = self.create_publisher(String, "sexy_girl", 10)
self.count = 0
self.timer_period = 5
self.timer = self.create_timer(self.timer_period, self.timer_callback)
def timer_callback(self):
msg = String()
msg.data = "第%d回:第%d次偶遇" % (self.count, self.count)
self.pub_novel.publish(msg)
self.get_logger().info("发布了一个章节的小说,内容是: %s" % msg.data)
self.count += 1
def main(args=None):
rclpy.init(args=args)
li4_node = WriteNode("li4")
rclpy.spin(li4_node)
rclpy.shutdown()
if __name__ == '__main__':
main()
```
非常抱歉给你带来了困惑。修正后的代码应该可以正常运行。
阅读全文