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

yipeiwu_com5年前Python基础

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

建立一个文件夹filePackage

在filePackage 文件夹内创建 __init__.py

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

在filePackage 文件夹内创建 file.py

file.py 代码如下:

#!/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 代码如下:

from file import MyFile

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

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

建立main.py 和 filePackage 平级,

main.py 代码如下:

#!/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里也可以这样写:

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

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

python二进制文件的转译详解

首先导入所需的包:import struct struct有以下几个主要的函数: # 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流) pack(fmt...

Python使用ffmpy将amr格式的音频转化为mp3格式的例子

最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定采用Python的ffmpy包。 首先是ffm...

Django用户认证系统 Web请求中的认证解析

在每个Web请求中都提供一个 request.user 属性来表示当前用户。如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例。 你可以通过i...

使用python装饰器验证配置文件示例

根据不同配置文件调用不同的验证函数检查输入。可以根据需求更改验证函数的逻辑。 复制代码 代码如下:def VerifyData(func):     def...

pandas按行按列遍历Dataframe的几种方式

pandas按行按列遍历Dataframe的几种方式

遍历数据有以下三种方法: 简单对上面三种方法进行说明: iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[n...