Python 基础教程之包和类的用法

Python 基础教程之包和类的用法

建立一个文件夹filePackage 

在filePackage 文件夹内创建 __init__.py 

有了 __init__.py ,filePackage才算是一个包,否则只是算一个普通文件夹。

在filePackage 文件夹内创建 file.py 

file.py 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
from datetime import datetime
 
class MyFile():
 
 def __init__(self, filepath):
  print('MyFile init...')
  self.filepath = filepath
 
 def printFilePath(self):
  print(self.filepath)
 
 def testReadFile(self):
  with open(self.filepath, 'r') as f:
   s = f.read()
   print('open for read...')
   print(s)
 
 def testWriteFile(self):
  with open('test.txt', 'w') as f:
   f.write('今天是 ')
   f.write(datetime.now().strftime('%Y-%m-%d'))

__init__.py 代码如下:

1
from file import MyFile

把本模块里面的 公用的类 方法 暴漏出来

然后 外面的引用 不用找到具体的现实位置,找到包的__init__ 就好了

建立main.py 和 filePackage 平级, 

main.py 代码如下:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
from filePackage import MyFile
 
if __name__ == '__main__':
 a = MyFile("./filePackage/test.txt")
 a.printFilePath();
 a.testReadFile();

目录结构: 

若 __init__.py 里什么也不写,那么在main.py里也可以这样写:

1
2
3
4
import filePackage.file
if __name__ == '__main__':
 a = filePackage.file.MyFile("./filePackage/test.txt")
 a.printFilePath();

但不建议这样写,建议按上面的方法将模块里的公用类暴露出来,直接引用。

posted @ 2017-04-11 10:42  专注it  阅读(869)  评论(0编辑  收藏  举报