python基本语法知识(四)——包和模块

模块

例子1:导入某个模块中的具体功能

# 只导入time模块中的sleep方法,可以直接使用sleep调用不用加time.
from time import sleep
print("hello")
sleep(500)
print("fine")

# 只导入time模块中的sleep方法,并给sleep起别名为sl
from time import sleep as sl
print("hello")
sl(500) # !!!
print("fine")

例子2:自定义模块

当自定义模块写了测试代码,在其他代码文件中导入该模块,也会调用该测试代码,即:

注意如下是两个个文件的代码

# my_moudle.py
def add(x, y):
    print(f"{x} + {y} = {x+y}")

add(8, 9)

# aa.py
import my_moudle
my_moudle.add(22, 12)

执行aa.py 输出:
8 + 9 = 17
22 + 12 = 34

如果不想执行 my_moudle.py 中的 add(8, 9),可修改代码:

# my_moudle.py
def add(x, y):
    print(f"{x} + {y} = {x+y}")

if __name__ == '__main__':
    add(8, 9)

__name__是每个py文件内置的变量,只有运行的py文件才会是__main__

例子3:__all__全局变量

# my_moudle.py
__all__ = ['add'] # 其他文件  以from my_moudle import * 导入,则只能用add函数
def add(x, y):
    print(f"{x} + {y} = {x+y}")

def sub(x, y):
    print(f"{x} - {y} = {x-y}")

python包

python包就是一个文件夹,里面是模块,即python文件,额外还有一个 __init__.py

创建python包方法

在这里插入图片描述

在这里插入图片描述

假设文件夹下有两个模块文件 my_moudle1.py 和 my_moudle2.py

# my_moudle1.py
def print1():
    print("模块1功能")

# my_moudle2.py
def print2():
    print("模块2功能")

在 aa.py 中使用

# 这样导入,调用函数要写包名.模块名.方法名
import my_package.my_moudle1
import my_package.my_moudle2

my_package.my_moudle1.print1()
my_package.my_moudle2.print2()

# 这样导入,调用函数要写模块名.方法名
from my_package import my_moudle1
from my_package import my_moudle2

my_moudle1.print1()
my_moudle2.print2()

# 这样导入,调用函数只要写方法名
from my_package.my_moudle1 import print1
from my_package.my_moudle2 import print2

print1()
print2()

列表的sort方法

即使用自己定义的比较函数来进行排序

my_list=[["a", 33], ["b", 55], ["c", 11]]

# 基于有名函数排序
# 表明按照element 的第二个元素进行排序
def choose_sort_key(element):
    return element[1]

# reverse=True 表明是降序排列
#my_list.sort(key = choose_sort_key, reverse=True)

# 基于lambda匿名函数来降序排序
my_list.sort(key=lambda element:element[1], reverse=True)

print(my_list)

输出结果:
[[‘b’, 55], [‘a’, 33], [‘c’, 11]]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值