我得到一本字典如下,
{'members': '{"mgt.as.wso2.com": 4100,"as.wso2.com": 4300}', 'subdomain': 'mgt'}
Run Code Online (Sandbox Code Playgroud)
在关键成员中,值在两个单引号内传递.有没有办法删除这些单引号.我想要下面的字典,
{'members': {"mgt.as.wso2.com": 4100,"as.wso2.com": 4300}, 'subdomain': 'mgt'}
Run Code Online (Sandbox Code Playgroud) 我在阅读其他代码时遇到了一个有趣的案例.
在头文件中,定义了一个静态变量和一个内联函数,简化如下:
static int ply;
inline int WTM(){return ply;}
Run Code Online (Sandbox Code Playgroud)
并在cpp包含此头的其他文件中调用该函数.
cout << ply << " " << WTM();
Run Code Online (Sandbox Code Playgroud)
奇怪的是,在调用此函数的位置,ply内联函数内部的变量与函数外部之前的相同变量具有不同的值.
输出为0 1;
我检查了所有的文件,并都ply和WTM()只有这个单一的定义.
之后我将代码更改为以下内容:
static int ply;
static inline int WTM(){return ply;}
Run Code Online (Sandbox Code Playgroud)
这两个值变得相同.
我的编译器g++ (GCC) 4.4.7使用默认设置.
我搜索了这个现象并得到了这两个链接:
内联函数和静态内联函数之间的区别
和
http://gcc.gnu.org/onlinedocs/gcc/Inline.html
但仍然不明白为什么会发生这种情况(特别是为什么他们在第一种情况下可能有不同的价值观).我想知道是否有人可以告诉我编译器将如何扩展这两段代码(我尝试使用-E但似乎没有在内联函数上工作).