14 模块

14 模块

1. 模块

  • 模块化指将⼀个完整的程序分解成⼀个个的⼩模块
  • 通过将模块组合,来搭建出⼀个完整的程序
  • 模块化的优点
    ⽅便开发
    ⽅便维护
    模块可以复⽤

2. 模块的创建

  • 在Python当中⼀个py⽂件就是⼀个模块
  • 在⼀个模块中引⼊外部模块 import 模块名(模块名就是py⽂件)
  • 可以引⼊同⼀个模块多次,但是模块的实例只会创建⼀次
  • import 模块名 as 模块别名
  • 在⼀个模块内部都有⼀个__ name__。通过它我们可以获取模块的名字
  • 如果py⽂件直接运⾏时,那么__ name__默认等于字符串'__ main__'。
    __ name__属性值为__ main__的模块是主模块。⼀个程序中只有⼀个主模块

3. 模块的使⽤

  • 访问模块中的变量 语法是 模块名.变量名
  • 访问模块中的函数 语法是 模块名.函数名
  • 访问模块中的对象 语法是 模块名.对象名
  • 我们也可以引⼊模块中部分内容 语法 from 模块名 import 变量,变量......
  • 还有⼀种引⼊⽅式 语法 from 模块名 import 变量 as 别名
# test_m测试模块

print('这是我的第一个模块')
print(__name__)

a = 1
b = 2
username = '192149641'
password = 'abcxxxxxx'

def test1():
    print('test1..')

def test2():
    print('test2..')

class Person():
    def __init__(self):
        self.name = '葫芦娃'

if __name__ == '__main__':
    p = Person()
    test1()
    test2()
    print(p.name)

# 模块mo

# 只要不符合以下的引入规范就引入不了
# 模块的创建
# 在python当中一个py文件就是一个模块

# 在一个模块中引入外部模块 test_m里有一行语句:print('这是我的第一个模块')
# 1. import 模块名
import test_m

# 2. import 模块名 as 模块别名
import test_m as test
# 通过__name__可以获取模块的名字
# print(__name__)  # 结果:__main__  当前文件为主文件时直接运行返回的结果
                   # 如果此行代码在test_m里面,在这里运行结果,结果为test_m

# 使用测试模块中的变量
# a = 1  # test_m 里面的语句
# b = 2  # test_m 里面的语句
# username = '192149641'  # test_m 里面的语句
# password = 'abcxxxxxx'  # test_m 里面的语句
# 语法是: 模块名.变量名
print(test_m.a,test_m.b)  # 结果: 1 2
username = test_m.username
password = test_m.password
print(username)  # 结果: 192149641
print(password)  # 结果: abcxxxxxx

# 语法是: 模块名.函数名
test_m.test2()   # 结果: test2..

# 语法是: 模块名.对象名
p = test_m.Person()
print(p.name)  # 结果:葫芦娃

# 我们可以引入模块中的部分内容
# 3 语法 from 模块名 import 变量,变量,变量......
# 例如:from bs4 import BeautifulSoup
from test_m import Person
p1 = Person()
print(p1.name)  # 结果:葫芦娃

from test_m import test1
test1()  # 结果: test1..

from test_m import Person,test1,test2
test1()  # 结果: test1..

# 4 语法 from 模块名 import 变量 as 别名
def test1():
    print('主模块中的test1..')
# 以下两行代码 由于定义了一个test1函数,与测试模块有重复,如果写在定义的def函数之前或之后,输出的的test1会有差异,所以需要重新把其中一个重命名
# from test_m import *
# import test
from test_m import test1 as new_test1
test1()  # 结果:主模块中的test1..
new_test1()  # 结果:test1..


注意:引入模块时,会将里面所有测试代码结果都输出,这不是我们需要的,所以需要加 if __name__ == '__main__': 此行代码,仅让测试模块运行结果,引入时不输出结果
import test_m

import random
import os # python 自带的
import lxml # 第三方的模块 需要按照 pip install lxml

1 import xxx
2 import xxx as yyy
3 from xxx import yyy,zzz,bbb
4 from xxx import *
5 from xxx import yyy as zzz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351