[转载] Python 模块的设计和编写

参考链接: Python模块

简述 

在 Python 中,模块是由 Python 代码组成的 .py 文件,任何 Python 文件都可以作为一个模块被引用。 

编写模块就像编写任何其他 Python 文件一样,模块可以包含类、函数和变量的定义,然后在其他 Python 程序中使用。 

| 版权声明:一去、二三里,未经博主允许不得转载。 

在模块中定义函数 

首先,创建一个名为 script.py 的文件,在里面定义了一个函数: 

# 定义一个函数

def hello():

    print("Hello, World!") 

运行这个脚本,看看会发生什么? 

$ python script.py 

$  

由于没有告诉程序要做什么(只有函数定义,并没有调用),所以任何事情都不会发生。 

可以在同一目录下创建一个名为 main_program.py 的模块,然后导入模块,通过点(.)表示法来调用该函数: 

import script

 

# 调用函数

script.hello() 

现在,运行这个新脚本,就会得到相应的输出了: 

$ python main_program.py

Hello, World! 

在模块中定义变量 

变量的定义比函数更简单,在 script.py 文件中添加一个变量: 

# 定义一个变量

var = 'I am a Pythonista.'

 

# 定义一个函数

def hello():

    print("Hello, World!") 

接下来,在 main_program.py 文件中通过 print() 函数调用该变量: 

import script

 

# 调用变量

print(script.var)

 

# 调用函数

script.hello() 

当运行该程序时,将得到以下输出: 

$ python main_program.py

I am a Pythonista.

Hello, World! 

在模块中定义类 

最后,还可以在 script.py 文件中定义一个类。 

来创建一个 Person 类,其中包含 name 和 age 属性,以及一个用于打印属性的 print_msg() 函数: 

# 定义一个变量

var = 'I am a Pythonista.'

 

# 定义一个函数

def hello():

    print("Hello, World!")

 

# 定义一个类

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

 

    def print_msg(self):

        print("name:", self.name)

        print('age:', self.age) 

现在,在 main_program.py 中使用该类: 

import script

 

# 调用变量

print(script.var)

 

# 调用函数

script.hello()

 

# 调用类

programmer = script.Person('Waleon', 18)

programmer.print_msg() 

一旦使用 script.Person() 调用了 Person 类,便可以访问 main_program.py 类中的函数和属性。 

再次运行程序,将得到以下输出: 

$ python main_program.py

I am a Pythonista.

Hello, World!

name: Waleon

age: 18 

注意: 模块的导入方式有很多种,具体可以参考:Python 模块。 

文档描述 

在编写模块时,有一点非常重要,为模块添加描述文档描述(例如:文档字符串、版权、作者等): 

# encoding: utf-8

#

# Copyright (c) 2017 Waleon All rights reserved.

#

"""Custom module - Define a variable & function & class"""

 

# 定义一个变量

var = 'I am a Pythonista.'

 

# 定义一个函数

def hello():

    print("Hello, World!")

 

# 定义一个类

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

 

    def print_msg(self):

        print("name:", self.name)

        print('age:', self.age) 

这是一个很好的编程习惯,既可以供他人阅读,也便于日后自己参考。 

注意:如果使用的是 Python 2.x,模块中包含中文,则需要添加一行声明文件编码的注释(模块第一行)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值