python的文件夹的包的结构

文章介绍了Python中的包概念,以chinese_calendar库为实例,详细阐述了__init__.py文件的作用,如何导入模块和变量,以及__all__变量的用途。包内包含了constants和utils等模块,分别定义了节假日、工作日等相关功能。
摘要由CSDN通过智能技术生成

    Python提出了包(Package)的概念。包就是文件夹,在该文件夹下有个“__init__.py” 文件, __init__.py 的模块可以是一个空模块,可以写一些初始化代码,其作用就是告诉 Python 要将该目录当成包来处理。Python 标准库中的每个库都有好多个包,而每个包中都有若干个模块。

   现在以中国日历"chinese_calendar"库为例:

 __init__.py文件的内容是:

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from .constants import Holiday, holidays, in_lieu_days, workdays
from .utils import (
    find_workday,
    get_dates,
    get_holiday_detail,
    get_holidays,
    get_solar_terms,
    get_workdays,
    is_holiday,
    is_in_lieu,
    is_workday,
)

__version__ = "1.8.0"
__all__ = [
    "Holiday",
    "holidays",
    "in_lieu_days",
    "workdays",
    "is_holiday",
    "is_in_lieu",
    "is_workday",
    "get_holiday_detail",
    "get_solar_terms",
    "get_dates",
    "get_holidays",
    "get_workdays",
    "find_workday",
]

  从constants.py导入类Holiday、变量holidays/workdays/in_lieu_days。

utils.py导入find_workday等9个函数。备注:多个导入的内容可以加括号也可以不加括号。

__all__变量,用来指定哪些变量和函数会被导入到包中,这里的内容的数量小于或等于全部可使用内容的数量。

  再看看utils.py的结构:

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

import datetime

from chinese_calendar.constants import holidays, in_lieu_days, workdays
from chinese_calendar.solar_terms import SOLAR_TERMS_C_NUMS, SOLAR_TERMS_DELTA, SOLAR_TERMS_MONTH, SolarTerms

def _wrap_date(date):
……
def _validate_date(*dates):
……
def is_holiday(date):
……
def is_workday(date):
……
def get_holidays(start, end, include_weekends=True):
……
……

 在utils.py里,也可用这样的方式导入其它文件的变量或函数:

from chinese_calendar.constants import holidays, in_lieu_days, workdays 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值