python项目中包含多个文件&全局内容&函数定义时,语句的执行顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python项目中包含多个文件&全局内容&函数定义时,语句的执行顺序相关的知识,希望对你有一定的参考价值。

参考技术A

假如有一个py文件如下

另一个py文件如下

他们的 执行顺序 是这样的:

并且!

config.py 里面的全局变量 parser 是一直存在的!可以被 get_config() 调用的!

在一个项目中包含多个 proto 文件会导致 protobuf_AssignDescriptorsOnce() 已经有一个主体

【中文标题】在一个项目中包含多个 proto 文件会导致 protobuf_AssignDescriptorsOnce() 已经有一个主体【英文标题】:Including multiple proto files on to one project causes protobuf_AssignDescriptorsOnce() already has a body 【发布时间】:2017-11-13 07:03:28 【问题描述】:

我从在同一个包下创建的服务器获得了多个 proto 文件。当我将多个这些 proto 文件添加到项目中时,每个 proto 文件都会生成自己的 .pb.cc 和 .h 文件,并且每个生成的文件都有以下两种方法。我需要将一些生成的 .cc 文件包含到我的一个项目中,这会导致以下两个函数的多个定义。

导致“函数已经有主体”问题的自动生成函数是 1.protobuf_AssignDescriptorsOnce() 2. protobuf_RegisterTypes(const ::std::string&)

更改包名显然可以解决这个问题,但 proto 文件是由服务器提供的,对该文件的任何更改都可能导致所有其他依赖客户端发生巨大变化。

我们将不胜感激任何解决此问题的帮助。

问候, 阿比拉什.G

【问题讨论】:

【参考方案1】:

问题很简单,与 protobuf 无关。我已将所有生成的 pb.cc 文件直接包含到我的“stdafx.cpp”中,而不是将生成的文件添加为导致全局函数“已经有正文”错误的项目的一部分。

【讨论】:

以上是关于python项目中包含多个文件&全局内容&函数定义时,语句的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

在一个项目中包含多个 proto 文件会导致 protobuf_AssignDescriptorsOnce() 已经有一个主体

无法在 Visual Studio 2013 中包含文件

如何使用 node.js 在 html 中包含静态文件

CONTAINS 在多列中包含多个术语

在项目中包含子模块 .xcdatamodeld 文件

在 Laravel 5 Blade 模板中包含 SVG 内容