我们即将开始研究新的商业网站项目,并将Google App Engine视为一个潜在的平台.
问题:
抱歉这些愚蠢的问题.
我已经开始使用Eclipe + PyDev作为开发我的第一个Google App Engine应用程序的环境.Eclipse是根据本教程配置的.
一切正常,直到我开始使用memcache.PyDev报告错误,我不知道如何解决它:
alt text http://www.freeimagehosting.net/uploads/fc176c0957.png
错误:导入的未定义变量:get
如何解决这个问题?当然,这只是PyDev检查器的问题.代码正确并在GAE上运行.
更新:
C:\Program Files\Google\google_appengineC:\Program Files\Google\google_appengine\lib\djangoC:\Program Files\Google\google_appengine\lib\webobC:\Program Files\Google\google_appengine\lib\yaml\lib更新2:
我看了一眼,C:\Program Files\Google\google_appengine\google\appengine\api\memcache\__init__.py发现get()没有声明为memcache模块功能.他们使用以下技巧来做到这一点(我没有听说过这种可能性):
_CLIENT = None
def setup_client(client_obj):
"""Sets the Client object instance to use for all module-level methods.
Use this method if you want to have customer persistent_id() or
persistent_load() functions associated with your client.
Args:
client_obj: Instance of the memcache.Client object.
"""
global _CLIENT …Run Code Online (Sandbox Code Playgroud) 在C++中,我有编译器告诉我重构后代码是否有问题.如何确保Python代码在更改后至少是正确的?可能有一些愚蠢的错误,如错误的函数名称等,在编译时很容易找到.
谢谢
我们可以做数字迭代,如:
for i in xrange(10):
print i,
Run Code Online (Sandbox Code Playgroud)
和C风格:
i = 0
while i < 10:
print i,
i = i + 1
Run Code Online (Sandbox Code Playgroud)
是的,我知道,第一个不容易出错,更像pythonic,但它是否足够快作为C风格的版本?
PS.我是来自C++星球,而且是Python上的新星.
我有方便的对象工厂模板,它按类型ID名称创建对象.实现非常明显:ObjectFactory包含从std::string对象创建者函数的映射.然后,所有要创建的对象都应在此工厂中注册.
我使用以下宏来做到这一点:
#define REGISTER_CLASS(className, interfaceName) \
class className; \
static RegisterClass<className, interfaceName> regInFactory##className; \
class className : public interfaceName
Run Code Online (Sandbox Code Playgroud)
这里RegisterClass是
template<class T, class I>
struct RegisterClass
{
RegisterClass()
{
ObjectFactory<I>::GetInstance().Register<T>();
}
};
Run Code Online (Sandbox Code Playgroud)
用法
class IFoo
{
public:
virtual Do() = 0;
virtual ~IFoo() {}
}
REGISTER_CLASS(Foo, IFoo)
{
virtual Do() { /* do something */ }
}
REGISTER_CLASS(Bar, IFoo)
{
virtual Do() { /* do something else */ }
}
Run Code Online (Sandbox Code Playgroud)
类在工厂中同时定义和注册.
问题是regInFactory...静态对象是在.h文件中定义的,因此它们将被添加到每个翻译单元中.同一个对象创建者将被多次注册,更重要的是,会有很多具有静态存储持续时间的冗余对象. …
假设我有一个这样的字符串:'12,423,343.93'.如何将其转换为float简单,有效和优雅的方式?
我似乎需要从字符串中删除多余的逗号,然后调用float(),但我没有很好的解决方案.
谢谢
提升岩石,它是伟大的,非常强大,但每次我在Visual Studio 7.1中构建解决方案时我都讨厌它.
Boost似乎对构建时间有影响(不是积极的).我不能从我的项目中删除所有Boost用法来比较构建时间,但我在小项目上尝试过它,差异很有意义.
我想问题是Boost包含数千个头文件,这些头文件非常广泛地包含在内.因此,当我将boost/function.hpp头文件包含在我的头文件中时,可能会导致包含数百个Boost头文件.
是否有人经历过相同的经历?任何想法如何解决?
粗略的想法:
PS.是的,Boost也使用了我认为很难编译的硬核模板,所以成千上万的头文件并不是唯一的问题.