我只知道两个文件名将被有意义地解释:<ItemGroup>
<!-- which files to process -->
<SRC_GEN_XML_Files Include="$(ProjectDir)\..\*.xml" />
</ItemGroup>
<PropertyGroup>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
<!-- the output language -->
<SRC_GEN_OUTPUT_TYPE>cpp</SRC_GEN_OUTPUT_TYPE>
<!-- where to put the generated files -->
<SRC_GEN_OUTPUT_DIRECTORY>$(ProjectDir)..</SRC_GEN_OUTPUT_DIRECTORY>
</PropertyGroup>
<!-- the shared script which generate the source -->
<Import Project="$(SolutionDir)/msbuild/src_gen.props" />
和<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="SrcGenChecks">
<Error Text="No SRC_GEN XML sources" Condition="'@(SRC_GEN_XML_Files)' == ''"/>
<Error Text="Incorrect SrcGen output type: '$(SRC_GEN_OUTPUT_TYPE)', valid values are 'cs' or 'cpp'" Condition="'$(SRC_GEN_OUTPUT_TYPE)' != 'cpp' and '$(SRC_GEN_OUTPUT_TYPE)' != 'cs'"/>
<Error Text="Incorrect SrcGen output directory: '$(SRC_GEN_OUTPUT_DIRECTORY)'" Condition="!Exists('$(SRC_GEN_OUTPUT_DIRECTORY)')"/>
</Target>
<Target Name="SrcGenGenerateSources"
Inputs="@(SRC_GEN_XML_Files)"
Outputs="@(SRC_GEN_XML_Files->'$(SRC_GEN_OUTPUT_DIRECTORY)\%(Filename).$(SRC_GEN_OUTPUT_TYPE)')"
BeforeTargets="PrepareForBuild"
DependsOnTargets="SrcGenChecks"
>
<Message Importance="High" Text="Generating '$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).$(SRC_GEN_OUTPUT_TYPE)' from SrcGen XML file '%(SRC_GEN_XML_Files.FullPath)'"/>
<Exec Command='$(SRC_GEN_EXE) -input="%(SRC_GEN_XML_Files.Identity)" -output="$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).$(SRC_GEN_OUTPUT_TYPE)" -lang=$(SRC_GEN_OUTPUT_TYPE)'/>
</Target>
<Target Name="CleanCpp" BeforeTargets="Clean" Condition="'$(SRC_GEN_OUTPUT_TYPE)'=='cpp'">
<Message Importance="High" Text="Removing SrcGen generated '$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).{cpp,h}"/>
<Delete Files='$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).cpp'/>
<Delete Files='$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).h'/>
</Target>
<Target Name="CleanCs" BeforeTargets="Clean" Condition="'$(SRC_GEN_OUTPUT_TYPE)'=='cs'">
<Message Importance="High" Text="Removing SrcGen generated '$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).cs"/>
<Delete Files='$(SRC_GEN_OUTPUT_DIRECTORY)\%(SRC_GEN_XML_Files.Filename).cs'/>
</Target>
</Project>
__init__.py
:包的init文件。首次导入/导入包时执行。如果这个文件存在,那么该目录被认为是一个包(也存在&#34;名称空间包&#34;没有init模块)
__main__.py
:包的主要入口点。从命令行运行包时执行此文件。 (例如:__init__.py
)
可以存在哪些其他文件以及它们做了什么?
答案 0 :(得分:4)
我不相信有明确的证据证明只有__main__
和__init__
是唯一的特殊文件,绝对没有看到任何文档。但是,通过在file finder for the C
Python repo.
只有__init__.py
和__main__.py
的; @ chepner的观点也被唯一的其他dunder强调:__future__.py
,__*__.py
的其他用法确实不应该被使用,因为它可能与未来的某些Python文件冲突。
由于我有源代码,所有文件中的"__.*__.py"
的grepping除了前面提到的三重奏之外没有产生任何其他结果。