[英]Using Boost Python, I can wrap C++ overloaded operators “+=”, “-=”, “*=”, but not “/=”?
[英]What is the accepted python alternative to C++ overloaded input stream operators?
在C ++中,您可以这样做以轻松地将数据读入类中:
istream& operator >> (istream& instream, SomeClass& someclass) {
...
}
在python中,我可以找到从控制台读取的唯一方法是“raw_input”函数,它不能很好地适应这种事情。 是否有一种pythonic方式来解决这个问题?
不,没有广泛的Pythonic约定“从这个打开的输入文本文件中读取X类的下一个实例”。 我相信这适用于大多数语言,包括Java; C ++是那里的异常(许多C ++商店禁止operator>>
在他们的本地风格指南中使用)。 另一个答案建议,序列化(往返于JSON或XML,如果你需要人类可读的文本文件)是一种可能的方法,但不是太热(没有标准化的方法将完整的通用类实例序列化为XML或JSON)。
您可以从sys.stdin(类似文件的对象)中读取而不是使用raw_input:
import sys
input_line = sys.stdin.readline()
# do something with input_line
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.