第十四讲——模块

1.模块
。模块化指将一个完整的程序分解成一个个的小模块
。通过将模块组合,来搭建出一个完整的程序
。模块化的优点
。方便开发
。方便维护
。模块可以复用
模块的创建
。在Python当中一个py文件就是一个模块
。在一个模块中引入外部模块 import模块名(模块名就是py文件)
。可以引入同一个模块多次,但是模块的实例只会创建一次
。import 模块名 as 模块别名
。在⼀个模块内部都有⼀个__name__。通过它我们可以获取模块的名字
。如果py⽂件直接运⾏时,那么__name__默认等于字符串’main’__name__属性值为__main__的模块是主模块。⼀个程序中只有⼀个主模块

3.模块的使用
。访问模块中的变量 语法是 模块名.变量名
。访问模块中的函数 语法是 模块名.函数名
。访问模块中的对象 语法是 模块名.对象名
。我们也可以引⼊模块中部分内容 语法 from 模块名 import 变量,变量…
。还有⼀种引⼊⽅式 语法 from 模块名 import 变量 as 别名

# @Author : PanHui
# @File : 模块.py
# 模块的创建
# 在python当中一个py文件就代表一个模块

# 在一个模块中引入其他模块
# 1.import 模块名(python的文件名)
# 可以引入同一个模块多次,但模块只会执行一次
# import test_m
# import test_m
# import test_m
# print(test_m)

# 2.import 模块名 as 模块别名
# import test_m as test
# print(test_m)
# print(test)

# 模块的使用
# 访问模块中的变量 语法 模块名.变量名
# print(test_m.a,test_m.b)
# print(test_m.username,test_m.password)

# 访问模块中的函数 语法 模块名.函数名
# test_m.test2()
# test_m.test1()

# import requests
#
# requests.get()
# requests.Session()

# 访问模块中的对象 语法 模块名.对象名
# p = test_m.Person()
# print(p.name)

# 我们也可以引入模块中的部分内容
# 语法 from 模块名 import 变量
# from test_m import Person
# from test_m import test1
# from test_m import test2
# p1 = Person()
# print(p1)
# test2()

# 3.语法 from 模块名 import 变量,变量,变量.....
# from test_m import Person,test1,test2
# test2()

def test1():
    print('我是主模块中的test1')
# from test_m import *
# import test_m

# 4.语法 from 模块名 import 变量 as 别名
from test_m import test1 as new_test1
test1()
new_test1

# import xxx
# import xxx as yyy
# from xxx import yyy,zzz,fff....
# from xxx import *
# from xxx import yyy as zzz
# @File : test_m.py
# print('这是我的第一个模块')
# 在每一个模块都有一个__name__ 。通过它我们可以获得当前引入模块的名字
print(__name__) # __main__ 表示当前的文件为主文件
# 在模块中定义变量
# a = 1
# b = 123465

# username = 'panhui'
# password = '123456'

# 在模块中定义函数
def test1():
    print('test1')
def test2():
    print('test2')
# 在模块中定义类
class Person:

    def __init__(self):

        self.name = '苍老师'
# 以下代码纯属测试程序

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

2.列表推导式

# @File : 列表推导式.py
# 旧的列表 --> 新的列表
# 语法 1 [表达式 for 变量 in 旧列表] 2 [表达式 for 变量 in 旧列表 if 条件]
# 找到长度大于3的人名
lst = ['jerry','tony','tom','mok','abcd']
r = [name.capitalize() for name in lst if  len(name) > 3]
# print(r)

# def fn(lst):
#     new_lst = []
#     for name in lst:
#         if len(name) > 3:
#             new_lst.append(name)
#     return new_lst

# 1-100 能被3整除 放到一个新的列表
new_lst = [i for i in range(1,101) if i % 3 == 0 and i % 6 == 0]
print(new_lst)

3.生成器

# @File : 生成器.py
# 在Python中有一边循环一边计算的机制,称之为生成器 generator
# 如何创建生成器
# 1.通过列表推导式
# 需求:得到一个0-10之内 分别和3相乘的列表
# new_lst = [x * 3 for x in range(20)]
# print(type(new_lst))
g = (x * 3 for x in range(10))
# print(type(g))
# 方式一__next__() 获得元素
# print(g.__next__())
# print(g.__next__())
# print(g.__next__())
# print(g.__next__())

# # 方式二 next()
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))

# 定义生成器方式二 通过函数来完成
# 只要在函数中添加了yield关键字,就变成了一个生成器函数
# 1 .定义一个函数,函数中使用yield关键字
# 2 .调用函数,接收调用结果
# 3 .得到的结果就是个生成器
# 4 .通过next()函数 __next__()
def fn():

    n = 0
    while True:
        n += 1
        # print(n)
        yield n  #  return n + 暂停
        # return n
n = fn()
print(n)
print(next(n))
print(next(n))
print(next(n))
print(next(n))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值