2024-04-25 23:03:08 发布
网友
BootoBuf生成C++类/java类,这些类是静态类型的类,足以进行编码/解码。为什么它生成了Python类,它包含了<强>元><强>属性:我想普通类足够做RPC,像C++ + java生成的类。在
为什么python应该使用动态类? 谢谢。在
主要是因为它更容易阅读。在
Python代码生成器也可以用同样的方法实现。但是,由于Python是一种动态语言,因此可以使用元类来代替。本质上,这允许在运行时构造大多数代码。元类比代码生成器更易于阅读和编辑,因为它完全是纯Python,没有难看的print语句。在
现在,您可能会认为Java可以做类似的事情:生成非常简单的类,然后使用反射来读写字段。问题在于Java是一种编译语言。编译的代码将比基于反射的代码执行得更好。但是,Python没有编译,所以使用反射方法不会有太大的损失(无论哪种方法都很慢)。事实上,由于Python被设计成动态的,所以您可以执行许多其他语言无法实现的巧妙技巧(但是,同样,这两种方法都很慢)。在
主要是因为它更容易阅读。在
<> > C++和java的代码生成器很难理解和编辑,因为必须同时遵循生成器代码和生成的代码。在Python代码生成器也可以用同样的方法实现。但是,由于Python是一种动态语言,因此可以使用元类来代替。本质上,这允许在运行时构造大多数代码。元类比代码生成器更易于阅读和编辑,因为它完全是纯Python,没有难看的print语句。在
现在,您可能会认为Java可以做类似的事情:生成非常简单的类,然后使用反射来读写字段。问题在于Java是一种编译语言。编译的代码将比基于反射的代码执行得更好。但是,Python没有编译,所以使用反射方法不会有太大的损失(无论哪种方法都很慢)。事实上,由于Python被设计成动态的,所以您可以执行许多其他语言无法实现的巧妙技巧(但是,同样,这两种方法都很慢)。在
相关问题 更多 >
编程相关推荐