为什么protobuf生成python类带有uu元类属性?

2024-04-25 23:03:08 发布

您现在位置:Python中文网/ 问答频道 /正文

BootoBuf生成C++类/java类,这些类是静态类型的类,足以进行编码/解码。为什么它生成了Python类,它包含了<强>元><强>属性:我想普通类足够做RPC,像C++ + java生成的类。在

为什么python应该使用动态类? 谢谢。在


Tags: 类型编码属性静态动态javarpc解码
1条回答
网友
1楼 · 发布于 2024-04-25 23:03:08

主要是因为它更容易阅读。在

<> > C++和java的代码生成器很难理解和编辑,因为必须同时遵循生成器代码和生成的代码。在

Python代码生成器也可以用同样的方法实现。但是,由于Python是一种动态语言,因此可以使用元类来代替。本质上,这允许在运行时构造大多数代码。元类比代码生成器更易于阅读和编辑,因为它完全是纯Python,没有难看的print语句。在

现在,您可能会认为Java可以做类似的事情:生成非常简单的类,然后使用反射来读写字段。问题在于Java是一种编译语言。编译的代码将比基于反射的代码执行得更好。但是,Python没有编译,所以使用反射方法不会有太大的损失(无论哪种方法都很慢)。事实上,由于Python被设计成动态的,所以您可以执行许多其他语言无法实现的巧妙技巧(但是,同样,这两种方法都很慢)。在

相关问题 更多 >

    热门问题