IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python系统学习【三】 -> 正文阅读

[Python知识库]python系统学习【三】

1. 模块化

python模块化
讲的很好但是有点乱
分类说的很清晰

在Python中,一个.py文件就称之为一个模块(Module)
为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。
引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。

1.1 模块的概念

模块的 概念

1.2 模块的调用

文件结构:

trymodule
│   first.py
│   test.py
├───folder1
│   │   abcd.py
│   │   __init__.py

trymodule文件:
(1)用法1:

# first.py
a = 1
def myfun(s):
    print(s + 1)

另一个py文件:

# test.py
import first

print(a)
'''
报错
Traceback (most recent call last):
  File "/Users/bytedance/Downloads/Project/pythonStudy/trymodule/1.py", line 3, in <module>
    print(a)
NameError: name 'a' is not defined

'''

print(first.a)  # 1

所以说first.py文件就是一个模块,可以用import导入,里面变量都要用first.前缀来引用,如果想不使用这个前缀可以这样:
(2)用法2:

# test.py
from first import a
print(a)  # 1

(3)用法3:

# test.py
# 重命名
from first import myfun as addone
addone(4)  # 5

# 导入模块中全部变量
from first import *
myfun(2)  # 3

# 一次导入多个变量
from first import a, myfun
print(a)  # 1

包的导入:

# abcd.py
b = 2
class Myclass:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def get_info(self):
        print('my name is {name} and age is {age}'.format(name = self.name, age = self.age))

看一下下面的几种导入方式:

# test.py
import folder1
print(folder1.abcd.b)  # 报错
'''
Traceback (most recent call last):
  File "/Users/bytedance/Downloads/Project/pythonStudy/trymodule/test.py", line 3, in <module>
    print(folder1.abcd.b)
AttributeError: module 'folder1' has no attribute 'abcd'
'''

from folder1 import abcd
bob = abcd.Myclass(name = 'Bob', age = 20)
print(bob.name)  # Bob

from folder1.abcd import b
print(b)  # 2

import folder1.abcd
print(abcd.b)  # 报错
'''
Traceback (most recent call last):
  File "/Users/bytedance/Downloads/Project/pythonStudy/trymodule/test.py", line 19, in <module>
    print(abcd.b)
NameError: name 'abcd' is not defined
'''
import folder1.abcd
print(folder1.abcd.b)  # 2

import folder1.abcd as aa
print(aa.b)  # 2
  • 只是导入包不能随便使用其中的模块,要导入到具体模块或者变量的层次
  • 文件夹与文件之间可以用.也可以用from import格式,而文件与里面的变量之间只能用from import格式,即不能import folder1.abcd.b

1.3 __init__.py 文件

每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块。当用 import 导入该目录时,会执行 __init__.py 里面的代码。

1.4 模块搜索路径

程序所在目录、标准安装目录、标准库安装目录、Python环境变量所包含的目录。

如果你自定义的模块与内置模块重名的话,会调用你的模块而非内置的模块,所以在命名模块的时候还是尽量别重名。如果硬是要同名且两个模块都用到,可以使用「完整路径引入」,并使用as 关键字为模块设置别名。另外,如果你的模块都不在这些搜索路径里的话,可以通过调用sys.path.append(“路径”)临时把路径添加到搜索路径中。

1.5 绝对引用和相对引用

  • 绝对引用是通过.的连接,指定出最高级文件(夹),到目标文件的绝对路径。我们上面的所有用法都属于绝对引用。
  • 而相对引用是 指定待引用模块与当前文件的相对位置,.表示上一级文件

1.6 if __name__ == '__main__'

__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。
参考

2. 文件处理

参考

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:46:22  更:2021-09-07 10:47:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:33:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码