首页 > 解决方案 > 我可以在 __init__.py 文件中编写方法/函数吗?

问题描述

我可以在__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)

标签: python

解决方案


当然,它们是普通文件。唯一的区别是他们定义文件夹是一个包。

来自python官方基础教程

需要这些__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

推荐阅读