1. 编程Python什么是Python模块?

艾伦·肖维奇(John Alan Shovic)

对于有关Python模块的所有讨论,模块实际上是一件非常简单的事情。实际上,Python模块只是一个扩展名为.py的文件,其中包含Python代码。而已。因此,只要您编写Python代码并将其保存在.py文件中,就基本上可以创建一个模块。

这并不是说您总是必须将该代码用作模块。当然可以将其视为独立应用程序。但是,如果您想使用自己在工作中经常需要的代码来创建自己的Python模块,则可以这样做。

编程Python模块

Python模块也只是文件扩展名为.py的文件。模块的名称与文件名相同(不带.py)。像任何.py文件一样,该模块包含Python代码。作为一个工作示例,假设您要使用三个函数来简化日期和货币值的格式。您可以为每个功能命名任意名称。对于我们的工作示例,我们将使用以下三个名称:

  • to_date(any_str):允许您以mm / dd / yy或mm / dd / yyyy格式传递任何字符串(any_str)日期,并发送回Python datetime.date来进行日期计算。 mdy(any_date):允许您传入任何Python日期或日期时间,并返回以mm / dd / yyyy格式设置的字符串日期,以显示在屏幕上。 to_curr(any_num,len):使您可以传递任何Python浮点数或整数,并返回带有前导美元符号,千位逗号和美分数字两位的字符串。 len是长度的可选数字。如果提供,返回值将在左侧填充空格以匹配指定的长度

因此,这是所有代码:

#包含日期和货币值的自定义函数。
导入日期时间为dt
def to_date(any_str):
“”“将mm / dd / yy或mm / dd / yyyy字符串转换为datetime.date,如果日期无效,则将其转换为None。
尝试:
如果len(any_str)== 10:
the_date = dt.datetime.strptime(any_str,'%m /%d /%Y')。date()
其他:
the_date = dt.datetime.strptime(any_str,'%m /%d /%y')。date()
除了(ValueError,TypeError):
the_date =无
返回the_date
def mdy(any_date):
“”“以mm / dd / yyyy格式返回字符串日期。以Python日期或mm / dd / yyyy格式传递字符串日期”“”
如果type(any_date)== str:
any_date = to_date(anydate)
#确保要转发的日期
如果isinstance(any_date,dt.date):
s_date = f“ {any_date:'%m /%d /%Y'}”
其他:
s_date =“无效日期”
返回s_date
def to_curr(任何数字,len = 0):
“”“以带$和逗号的字符串形式返回数字。长度是可选的”“”
s =“无效金额”
尝试:
x =浮点数(任意)
除了ValueError:
x =无
如果isinstance(x,float):
s ='$'+ f“ {x:,。2f}”
如果len> 0:
s = s.rjust(len)
返回s

您可以自己创建相同的文件,并将其命名为myfunctions.py。请注意,该文件仅包含函数。因此,如果您运行它,它将不会在屏幕上执行任何操作,因为其中没有调用任何这些函数的代码。

要在您编写的任何Python应用或程序中使用这些功能,请首先确保将myfunc.py文件复制到与编写的其余Python代码相同的文件夹中。然后,当您创建新页面时,可以将myfunc作为模块导入,就像其他人创建的任何其他模块一样。只需使用

导入myfunc

您必须在从该模块调用的任何函数之前使用模块名称。因此,如果您想使代码更具可读性,可以改用以下代码:

导入myfunc作为我的

以此作为开头,您可以使用my来引用自定义Python模块中的任何函数。作为前缀。例如,my.to_date()调用to_date函数。这是一个页面,该页面导入模块,然后使用我的语法测试所有三个功能:

#将myfunc.py中的所有代码导入为my。
导入myfunc作为我的
#需要此代码中的日期
从datetime导入datetime为dt
#一些简单的测试数据。
string_date =“ 12/31/2019”
#将字符串date转换为datetime.date
打印(my.to_date(string_date))
今天= dt.today()
#以mm / dd / yyyy格式显示今天的日期。
打印(my.mdy(今天))
dollar_amt = 12345.678
#以货币格式显示此大数字。
打印(my.to_curr(dollar_amt))

如果按名称导入项目,也可以跳过使用前缀。在这种情况下,这意味着您可以调用to_date(),mdy()和to_curr()而不使用my。字首。代码的第一行需要是

从myfunc导入to_date,mdy,to_curr

其余代码与上一个示例相同,只是您可以省略my。前缀如以下代码所示:

#按名称从myfunc.py导入所有代码。
从myfunc导入to_date,mdy,to_curr
#需要此代码中的日期
从datetime导入datetime为dt
#一些简单的测试数据。
string_date =“ 12/31/2019”
#将字符串date转换为datetime.date
打印(to_date(string_date))
今天= dt.today()
#以mm / dd / yyyy格式显示今天的日期。
打印(今天(今天)
dollar_amt = 12345.678
#以货币格式显示此大数字。
打印(to_curr(dollar_amt))

查阅这10个惊人的Python编程资源以获取更多信息。