有一个月没更新博客文章了,主要原因是我在摸索新知识,探索未知,以后有机会写写这段时间的成果,将会在linux编程专题继续更新。
现在我打算写一个新的专题Python编程来总结过去点点滴滴的收获。这个专题面向有python基础的人,提高对于python的认识,使你更加熟练使用python语言。python编程专题默认环境是linux环境。
这篇文章是这个专题的开篇之作,所以我先介绍如何用包来管理和维护自己的代码,这很重要。
python语言有包(package)和模块(module)等概念,简单来说 包就是含有__init__.py文件的文件夹(目录),而模块就是文件夹(目录)下的python文件。
从创建一个包开始
mkdir Package
cd Package
touch __init__.py
创建Main.py和模块文件One.py,其目录结构如下
.
├── Main.py
└── Package
├── __init__.py
├── One.py
└── __pycache__
├── __init__.cpython-37.pyc
└── One.cpython-37.pyc
2 directories, 5 files
One.py
#!/usr/bin/python3
class one:
def __init__(self):
print("One init ....")
def Print(self,name):
print(name)
Main.py
#!/usr/bin/python3
#直接导入模块One,包.模块
import Package.One
if __name__ == "__main__":
#调用函数---》包.模块.类().函数
Package.One.one().Print("Main.py ----> One.py")
如果觉得上面调用函数方式太长,可以使用import的两种变式,这两种是很常用的方式
-
使用as取别名,导入模块
-
使用from从模块中导入类
#!/usr/bin/python3
import Package.One as One
if __name__ == "__main__":
one=One.one()
one.Print("Main.py ----> One.py")
#!/usr/bin/python3
from Package.One import one
if __name__ == "__main__":
one().Print("Main.py ----> One.py")
其运行结果
One init ....
Main.py ----> One.py
写到这里,相信对于包和模块的使用已经了解,知道如何导入一个类,接下来继续探讨其用法。
在Package下新建一个包Forward,其目录结构如下
.
├── Main.py
└── Package
├── Forward
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ └── Two.cpython-37.pyc
│ └── Two.py
├── __init__.py
├── One.py
└── __pycache__
├── __init__.cpython-37.pyc
└── One.cpython-37.pyc
4 directories, 9 files
Two.py
#!/usr/bin/python3
class two:
def __init__(self):
print("Two init ....")
def Print(self,name):
print(name)
One.py
#!/usr/bin/python3
from Package.Forward.Two import two
class one:
def __init__(self):
print("One init ....")
def Print(self,name):
two().Print(name)
Main.py
#!/usr/bin/python3
from Package.One import one
if __name__ == "__main__":
one().Print("Main.py ----> One.py")
运行结果
python3 Main.py
One init ....
Two init ....
Main.py ----> One.py
至此,关于包和模块的使用就讲解到这里,下面是总结
#导入模块
import package.module
import package.package.module
import package.package.module as module
#类的使用
module.class()
#导入类
import package.module.class
#类的使用
class()
Python编程专题开篇之作,希望是个好的开始。好的编程习惯从管理代码开始,下一篇见。