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包方法

python基本语法知识(四)——包和模块_第1张图片

在这里插入图片描述

假设文件夹下有两个模块文件 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]]

你可能感兴趣的:(python,python,开发语言)