【发布时间】:2014-06-11 14:47:50
【问题描述】:
我目前正在将一些 C++ 代码移植到 python,但不知道如何翻译:
print std::setfill('0') << std::setw(2) << std::hex << myVar << std::dec << " "
如何将std::setfill('0') 和std::setw(2) 翻译成python?
【问题讨论】:
-
你看起来不是很努力...
'<any_char>'*n返回 any_char n 次。"%x"%myVar将 myVar 格式化为十六进制。 -
但谁会先写这样的东西呢?如果
myVar具有需要这种格式的语义,那么您将编写一个执行该操作的单个操纵器,以与具有该语义的所有变量一起使用。 (在 Python 中,我能想到的唯一方法是编写一个执行转换的函数,使用所需的格式,并返回一个字符串。) -
另外,当然:您不会将格式返回到
std::dec;您可以将其重置为更改之前的状态。 (这可以在自定义操纵器的析构函数中完成,或者通过使用将格式保存在其构造函数中并在其析构函数中恢复它的作用域对象来完成。) -
查找 ljust 和 rjust。