1 krixaar 2021-01-20 17:50:14 +08:00 你在__init__.py 里加一行 print('This is __init__.py') ,然后再运行一下试试。 |
![]() | 2 zachlhb 2021-01-20 17:52:59 +08:00 via Android 做初始化操作的 |
3 cjq8z 2021-01-20 17:54:55 +08:00 via Android 类这些初始化需要这语句。 |
![]() | 4 monsterxx03 2021-01-20 17:56:54 +08:00 在 python2 里文件夹里必须要有 __init__.py 文件在能被当成包 import , python3 里不是必须,只有在包被 import 时候执行的时候才需要 |
![]() | 5 IurNusRay OP @krixaar 都能正常导入执行的,难道是 python3 已经不需要__init__.py 就可以导入文件夹了吗 |
6 acmore 2021-01-20 17:58:25 +08:00 另一个常见的用法:暴露出内部的接口和成员,供外部调用。 使用得当可以减少很多记忆接口和排查循环引用的心智负担。 |
![]() | 7 IurNusRay OP |
![]() | 8 IurNusRay OP @monsterxx03 是指执行包里面的.py 文件里面的函数吗 |
![]() | 9 monsterxx03 2021-01-20 18:04:37 +08:00 @IurNusRay 意思是 __init__ .py 里的代码会在包被 import 的时候自动执行, 自己试一下就知道了 |
10 NeezerGu 2021-01-20 18:09:34 +08:00 https://stackoverflow.com/questions/448271/what-is-init-py-for 都不需要你会英语,谷歌翻译看就行。 请使用谷歌搜索以解决国内各种野鸡教程的问题 |
![]() | 11 xiri 2021-01-20 18:36:31 +08:00 比如我有一个 a 文件夹,里面有一个 b.py 文件,里面写了一个 c 函数(供外部调用的) 我的一般做法是在 a 文件夹的__init__ .py 里面写一个 from .b import c 然后其他文件中需要调用 c 函数的时候只需要 from a import c 如果没有__init__ .py ,要调用 c 函数的话需要 from a.b import c 就像楼上说的,__init__ .py 里的代码会在包被 import 的时候自动执行,在 python3.3 之前必须要这个文件才能将文件夹识别为 python 包,但是现在已经不强制需要了 |
12 renmu123 2021-01-20 20:51:34 +08:00 via Android |
![]() | 13 IurNusRay OP @NeezerGu 哈哈,谢谢,我测了半天,明明不需要__init__.py 也能导入,现在明白了 |
![]() | 15 502Chef 2021-01-21 10:45:48 +08:00 via Android 老哥的 vsc 主题是什么?好漂亮呀 |
![]() | 16 ppxpps 2021-01-21 10:52:36 +08:00 @huyujievip 感觉是 pycharm |
![]() | 17 502Chef 2021-01-21 10:58:08 +08:00 via Android @ppxpps 哈哈哈,我看了一下,是 pycharm,原来 pycharm 也有这么漂亮的 theme |
![]() | 18 IurNusRay OP @huyujievip 用的是 pycharm,下载了个主题插件"Material" |
19 xiaoHuang3 2021-01-22 12:35:01 +08:00 @IurNusRay 为啥我刚装的"Material"跟你的不一样 TAT,我的太丑了,感觉都没生效 |
![]() | 20 IurNusRay OP @xiaoHuang3 不会吧,安装完重启就会默认用这个主题了,或者换个主题试试,settings--->Appearence--->Material Theme 里面看看 |