python面向对象day04

模块中的__all__

模块中有个魔术变量__all__,其值为列表,可以限定通过 from 模块名 import * 导入的内容
例子:func.py文件
# 使用all
__all__ = ["show", "hello"]


def show():
    print("见天天气真好")


def hello():
    print("今天想睡觉")


def look():
    print("看见啥了")


    
    
# 导入func.py文件
# 导入模块
from func import * # * 号表示一次性导入所有模块中的内容


# 使用__all__可以规定可以导入的内容
# 导入后使用
show()
hello()
look() # 无法导入

模块定位

1. 模块的查找路径(模块的定位)
    (1) 系统规定死的路径
        先后顺序:
        a. 内置模块路径(python.exe中), 任意地方都能使用
        b. 系统标准模块路径(python安装路径/Lib目录中), 任意地方都能使用
        c. 主执行文件所在当前目录
        d. 第三方包的安装路径(pip install PyMySQL): python安装路径/Lib/site-packages,
        任意地方都能使用

    (2) 自定义的路径
        任意指定一个路径作为包/模块的查找路径
        实现方式:
        import sys
        sys.path    # 系统路径, 列表, 可以修改的
        sys.path.append("新目录路径")
        sys.path.insert(0,"新目录路径")

2. 补充容易踩得坑(pycharm)
    pycharm自动将 项目根目录添加到了 sys.path 中, 原本可能是没有的

导包

1. 标准的包中有个__init__.py文件, 是一个目录.

2. 作用: 管理多个模块/包

3. 包的使用
    from 包名 import 模块名
    from 包名.模块名 import 函数/类/变量
    from 包名.模块名 import *

    # 导入包中的所有模块
    from 包名 import *

4. from 包名 import * : 一次性导入所有的模块
    缺点: 会导入很多的模块及内容到内存中, python要求必须限制能够导入的模块
    解决: 在 __init__.py 文件中通过 __all__ = ["模块名"] 指定能够导入的模块

给程序传参

我们在工作中通常会在命令行下运气或者启动我们的程序,例如python在命令行下运行。
但是有的情况是我们需要给我们的可执行程序传递参数
例子:
# 接受参数
import sys

print(sys.argv)  # 接受参数的程序

# 测试报告
test_report = "你的功能没有问题"
# 录入信息
name = sys.argv[1]
email = sys.argv[2]

# 发送邮件
print(f"发送邮件给{name},邮箱地址为{email}")

列表推导式

所谓的列表推导式,就是指的轻量级循环创建列表
基本使用
变量 = [表达式 for 变量 in 列表]

1. 概念: 列表推导式 根据指定的表达式 用于快速生成列表

    语法:
       变量 = [表达式 for tmp in 容器 简单if语句]  # 简单 if xxx else xxx
例子:
# 生成一到一百的平方
result = [i ** 2 for i in range(1, 101)]
print(result)

# 生成一到一百中偶数的平方
result = [i ** 2 for i in range(1, 100) if i % 2 == 0]
print(result)

# 快速获取列表中的索引
tmp = [1, 2, 3, 1, 1, 4, 5]
result = [i for i in range(len(tmp)) if tmp[i] == 1]
print(result)

"""
请写出⼀段Python代码实现分组⼀个list⾥⾯的元素,⽐如
[1,2,3,...100]变成	[[1,2,3],[4,5,6]....]
"""
a = [x for x in range(1, 101)]
# a = list(range(0, 101))
# print(a)
# print(len(a))
# b = [a[0:3], a[3:6]]
b = [a[x:x + 3] for x in range(0, len(a), 3)]
print(b)

集合,列表,元组

1.什么是集合
Pyton中数据类型中的一种:set 集合
集合就是将不同的元素放在一起组成一个集合对象
集合与集合直接可以进行运算,从而实现一些特别方便的功能。
集合set、列表list、元组tuple之间可以相互转化
例子:
# 选语文的人员
yw = ["张飞", "刘备", "大乔", "小乔", "貂蝉"]
# 选数学的人
sx = ["大乔", "小乔", "貂蝉", "周瑜", "诸葛亮"]

# 同时选语文和数学的人
result = list(set(yw) & set(sx))
print(result)
# 只选语文的人
result = list(set(yw) - set(sx))
print(result)

# 全部人员
result = list(set(yw) | set(sx))
print(result)
发布了20 篇原创文章 · 获赞 0 · 访问量 205

猜你喜欢

转载自blog.csdn.net/weixin_46054381/article/details/103847626