zoukankan      html  css  js  c++  java
  • Day26--Python--包

    1. from xxxx import *
    从xxx导入所有. 如果XXX模块内部有__all__ 导入all中的内容. 如果没有__all__全部都导入
    __all__ = ["money", "chi"] # 此时如果有人导入这个模块. 并且是from xxx import *
    money = 5000
    
    def chi():
        print("人喜欢吃东西")
    
    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __str__(self): # 当执行print(对象)
            return self.name + str(self.age)+"明天换套衣服"
    
    # 此时money 和chi都可以访问,但是Person不能调用

    2. 包
      from urllib.request import urlopen # 点 前面的一定是包
      包其实就是文件夹

      from urllib import request
      request.urlopen()

    文件夹内包含了__init__.py在导入包的时候, 默认执行__init__.py
       py2中,包中必须有__init__.py,但是py3中不强制.如果自己写包一定要加__init__.py,否则不容易确定文件夹是否是一个包
    创建包:
        创建文件夹
        创建__init__.py
        使用pycharm可以直接创建python的package(包)

       查找的顺序: 内存 -> 内置 -> sys.path
    sys.path有坑: 根据你启动的脚本所在的位置确定查找包, 模块的路径
    sys.path.insert(0, "你想加入的位置") # sys.path是一个列表,可以insert和append,但不建议使用
    1. 绝对路径
    从sys.path找. 根


    2. 相对路径
    相对于当前文件所在文件夹
    . 当前
    .. 上一层
    启动脚本不能在包内, 所以一般在包外都写一个run.py
    # run
    if __name__ == '__main__':
        pass
    View Code run.py

     

  • 相关阅读:
    linux常用命令笔记
    head first html与css
    多线程编程核心技术日记
    nio
    排序算法
    随笔
    数据库读写分离
    购物网站设计
    http
    servlet初始化
  • 原文地址:https://www.cnblogs.com/surasun/p/9779638.html
Copyright © 2011-2022 走看看