如何在Python 3 中创建模块?
模块只是具有函数、类、变量的Python代码。任何带有 .py 扩展名的Python文件都可以作为模块引用。虽然有一些可以通过它们通过Python安装安装Python标准库模块,其他模块可以使用画中画安装程序进行安装,我们也可以创建我们自己的Python模块。
在本文中,我们将看到如何在Python创建模块。
编写模块
任何由函数、类、变量组成的Python代码都可以称为模块。我们将编写一个简单的模块,其中包含一个函数、一个类和一个变量。
Python
# defining a class Age
class Age:
# defining the __init__ method
def __init__(self, name, years):
self.years = years
self.name = name
# defining the getAge method
def getAge(self):
print("The age of " + self.name +" is "+self.years)
# defining the function hello
def hello():
print('hello geeks!')
# creating a string s
s = 'I love python!'
Python
# importing the module mod.py
import mod
# calling the function hello() from mod.py
mod.hello()
Python
# importing only the function hello from the module mod.py
from mod import hello
# calling the function hello()
hello()
Python
# importing the module mod.py
import mod
# creating a object jack with jack as name and 21 as age
jack = mod.Age('jack','21')
# calling the getAge() method for object 'jack'
jack.getAge()
Python
# importing only the Age class from mod
from mod import Age
# creating the object jack with jack as name and 21 as age
jack = Age('jack','21')
# calling the getAge() method for the object jack
jack.getAge()
Python
# importing the module mod.py
import mod
# printing the variable s present in mod.py
print(mod.s)
Python
# importing only the variable s from module mod.py
from mod import s
# printing the variable s
print(s)
在上面的模块中,我们定义了一个具有 __init__() 和 getAge() 方法的类“Age”,该方法将用于初始化类对象并获取将传递的对象的年龄,我们还定义了一个函数hello() 将打印 'hello geeks!'还有一个字符串s ,它是“我爱Python!”。
我们将上面制作的模块命名为 mod.py 并保存它。
导入模块
现在我们将讨论如何从其他Python文件导入一个模块并使用它的各种函数、类、变量。为此,我们将在与 mod.py 相同的目录中创建一个文件 main.py。
我们将使用 import 语句导入模块,并使用函数、类、变量如下:-
使用函数
为了使用模块中的函数,我们将首先导入它,然后使用 module_name.function_name() 调用该函数。举例来说,如果我们要调用mod.py的hello()函数在main.py我们将首先进口mod.py,然后用mod.hello称之为()。
Python
# importing the module mod.py
import mod
# calling the function hello() from mod.py
mod.hello()
输出:
hello geeks!
注意:请确保 main.py 和 mod.py 在同一目录中。
我们也可以只从模块中导入一个单独的函数来使用它: from module_name import function_name
然后直接调用。例如,如果我们想使用上述方法调用main.py中mod.py的hello()函数,我们将在main.py中编写如下代码。
Python
# importing only the function hello from the module mod.py
from mod import hello
# calling the function hello()
hello()
输出:
hello geeks!
使用类
我们可以通过module_name.class_name() 使用这些类来创建各种对象。例如,如果我们想在 main.py 中通过 mod.py 中存在的类 Age 的名称“jack”创建一个对象。我们将在 main.py 中编写以下代码:
Python
# importing the module mod.py
import mod
# creating a object jack with jack as name and 21 as age
jack = mod.Age('jack','21')
# calling the getAge() method for object 'jack'
jack.getAge()
输出:
The age of jack is 21
我们仅导入特定函数的方式与我们只能导入特定类的方式相同。代码如下:
Python
# importing only the Age class from mod
from mod import Age
# creating the object jack with jack as name and 21 as age
jack = Age('jack','21')
# calling the getAge() method for the object jack
jack.getAge()
输出:
The age of jack is 21
使用变量
要从模块中获取任何变量,我们必须首先导入模块,然后我们可以简单地通过 module_name.variable_name 获取它。例如,如果我们想打印 mod.py 模块中存在名称为 s 的变量,我们将编写以下代码:
Python
# importing the module mod.py
import mod
# printing the variable s present in mod.py
print(mod.s)
输出:
I love python!
就像我们对函数和类所做的一样,我们可以从模块中导入特定的变量。要通过此方法打印变量“s”,代码将是:
Python
# importing only the variable s from module mod.py
from mod import s
# printing the variable s
print(s)
输出:
I love python!