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


Posted in Python onFebruary 23, 2017

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();

目录结构:

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

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

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

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

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

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
在Python中使用模块的教程
Apr 27 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
Python实现统计单词出现的个数
May 28 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
python用户管理系统的实例讲解
Dec 23 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
python 装饰器功能与用法案例详解
Mar 06 Python
Django 实现图片上传和下载功能
Dec 31 Python
python安装oracle扩展及数据库连接方法
Feb 21 #Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 #Python
Python实现字符串格式化的方法小结
Feb 20 #Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 #Python
Python 模块EasyGui详细介绍
Feb 19 #Python
Python中字符串格式化str.format的详细介绍
Feb 17 #Python
Python爬虫:通过关键字爬取百度图片
Feb 17 #Python
You might like
德生PL550的电路分析
2021/03/02 无线电
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
Array.prototype 的泛型应用分析
2010/04/30 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
详解JavaScript树结构
2017/01/09 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
python日期相关操作实例小结
2019/06/24 Python
Django 批量插入数据的实现方法
2020/01/12 Python
Python urllib.request对象案例解析
2020/05/11 Python
python交互模式基础知识点学习
2020/06/18 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
劳模先进事迹材料
2014/12/24 职场文书
电影建国大业观后感
2015/06/01 职场文书
南极大冒险观后感
2015/06/05 职场文书
贫困证明怎么写
2015/06/16 职场文书
python实现监听键盘
2021/04/26 Python
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS