zoukankan      html  css  js  c++  java
  • [转] Python包和类的基本用法

    http://blog.csdn.net/liukang325/article/details/46724365

    建立一个文件夹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();
    

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

  • 相关阅读:
    离线下载使用Google商店插件crx
    springboot thymeleaf 引入js
    如何保证系统重启,tomcat自动重启
    如何实现财务自由
    理财之道
    九大职场定律
    算法系列二:如何学习算法
    FastDFS结合Flask使用
    系统权限的实现
    正则表达式
  • 原文地址:https://www.cnblogs.com/esta-pessoa/p/5962750.html
Copyright © 2011-2022 走看看