现在有这样一个类 class PulicTopic: #成交记录 trade ={"method": "subscribe", "params": ["trade@btc_usdt"]} python在实例化PublicTopic时,怎么改变params里面的值
时间: 2023-10-21 22:18:19 浏览: 42
你可以在实例化 `PublicTopic` 的时候传入新的参数来改变 `params` 中的值。例如,假设你想要订阅 `depth@btc_usdt`,你可以这样做:
```python
class PublicTopic:
def __init__(self, params):
self.trade = {"method": "subscribe", "params": params}
# 实例化 PublicTopic,并订阅 depth@btc_usdt
public_topic = PublicTopic(["depth@btc_usdt"])
```
这样就会将 `params` 中的值改为 `["depth@btc_usdt"]`。
相关问题
ros::Subscriber sub = nh.subscribe("serial_data", 100, buf);报错
在ROS中,如果订阅者的回调函数参数类型与发布者发布的消息类型不匹配,就会出现类似的错误。
在你的代码中,第三个参数是一个指向回调函数的指针,应该是一个函数名或者是一个函数对象。而缺少了回调函数的定义,因此出现了这个错误。在回调函数中,应该将接收到的消息进行处理,以便实现你需要的功能。
以下是一个示例代码,演示如何在ROS中订阅指定话题并处理接收到的消息:
```c++
#include <ros/ros.h>
#include <string.h>
#include <std_msgs/String.h>
void receiveData(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("Received data: %s", msg->data.c_str());
// 在这里进行数据处理
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "serial_receive_node");
ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe("serial_data", 100, receiveData);
ros::spin();
return 0;
}
```
在上述代码中,我们定义了一个回调函数receiveData,用于处理接收到的消息。回调函数的参数类型与发布者发布的消息类型相同,因此接收到的消息可以在回调函数中被正确地处理。
需要注意的是,在使用回调函数时,必须按照指定的参数类型进行定义,否则会出现编译错误。
E0135 class "RdKafka::Consumer" 没有成员 "subscribe" coumser_delay
这个错误可能是由于您使用的RdKafka版本较旧导致的,因为在较新版本的RdKafka中,"subscribe"方法已经被添加到"RdKafka::KafkaConsumer"类中。
您可以尝试更新RdKafka版本,或者使用"assign"方法替换"subscribe"方法来手动分配分区。
示例代码:
```cpp
RdKafka::KafkaConsumer *consumer = RdKafka::KafkaConsumer::create(conf, errstr);
if (!consumer) {
// 处理创建失败的情况
}
std::vector<std::string> topics = {"topic1", "topic2"};
std::vector<RdKafka::TopicPartition*> partitions;
for (const auto& topic : topics) {
partitions.push_back(RdKafka::TopicPartition::create(topic, RdKafka::Topic::PARTITION_UA, RdKafka::Topic::OFFSET_BEGINNING));
}
RdKafka::ErrorCode err = consumer->assign(partitions);
if (err != RdKafka::ERR_NO_ERROR) {
// 处理分配分区失败的情况
}
```
这段代码将分配"topic1"和"topic2"的所有分区。您可以根据需要修改分区偏移量,也可以手动分配特定的分区。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)