我可以在__init__.py文件中编写方法/函数吗?

时间:2018-07-18 16:19:06

标签: python

我可以在__init__.py文件中编写方法/函数吗?如下所示

示例:

__init__.py文件中

import subprocess
import config


def ssh_exe(cmd):
    try:
        ssh_cmd = "ssh root@{0} {1}".format(config.ip, cmd)
        out = subprocess.check_output(ssh_cmd)
        return out
    except Exception as e:
        return str(e)

1 个答案:

答案 0 :(得分:1)

请确保它们是正常文件。唯一的区别是它们将文件夹定义为包。

来自python official basic tutorial

  

需要__init__.py文件来使Python将目录视为包含包;这样做是为了防止具有通用名称(例如字符串)的目录无意间隐藏了稍后在模块搜索路径中出现的有效模块。在最简单的情况下,__init__.py 只能是一个空文件,但是它也可以为该程序包执行初始化代码或设置__all__变量,如下所述。

请注意,您通常不将代码放在__init__.py中,而是在程序包的模块中定义代码,并仅导入要在程序包命名空间中公开的名称。

下面是一个有关如何访问的示例,假设您具有以下目录结构:

Development/
   main.py
   setup.py
   myprogram/
       __init__.py
       other.py

由于myprogram__init__.py文件夹被认为是软件包,因此在main.py中,您可以执行以下操作:

import myprogram
myprogram.something() # defined in `__init__.py`
import myprogram.other # the submodule other.py inside the package