📜  如何在Python 3 中创建模块?

📅  最后修改于: 2022-05-13 01:55:28.931000             🧑  作者: Mango

如何在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!