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
run.py

Day26--Python--包的更多相关文章
- 离线pip下载Python包
离线pip下载Python包 这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧. # 生产环境 windows xp# python 2 ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- RobotFramework中加载自定义python包中的library(一个py文件中有多个类)
结构如下: appsdk\ appsdk.py(这里面有多个类,包括appsdk,appsdksync等类) __init__.py ... ① 有个appsdk的文件夹(符合python包的定义) ...
- centos 7 下安装numpy、scipy等python包
本文适用于刚入门的小白,欢迎大牛们批评指正. 因为要开始数据分析,而python又不像R和matlab那么简洁.需要安装的包很多~ 网上找了好多牛人博客,想在centos7下安装numpy,scipy ...
- python 包管理工具
python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
- Python 包的相对导入讲解
[Python 包的相对导入讲解] 参考:http://www.dai3.com/python-import.html
- 转: CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
from: http://www.linuxde.net/2014/05/15576.html CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法 2014/05/ ...
- 纯Python包发布setup脚本编写示例
如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...
- windows 64位 dll文件 位置及python包rtree shapely安装
位置 \Windows\System32 python包依赖包安装 rtree 依赖 spatialindex(spatialindex.dll spatialindex_c.dll) shape ...
随机推荐
- mysql 分库分表备份脚本
#!/bin/bash USER=root #用户 PASSWORD=123456 #密码 MYSQL_PATH=127.0.0.1 #地址 MYSQL_BIN=/bin/mysql MYSQL_DU ...
- pip 安装 MySQL-python 报错
报错一:EnvironmentError: mysql_config not found 解决:yum install mysql-devel 报错二:Python.h No such file or ...
- JS判断语句 注意多句时加大括号 回调函数LODOP兼顾写法
由于C-LODOP获取一些动作函数的返回值,需要用回调函数,由于常见的使用方法是混合部署,也就是同一个页面,根据浏览器的不同,可能会走LODOP ,也可能会走C-LODOP,因此写法要坚固两种,而有些 ...
- css3实现背景渐变
#grad { background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /* Safari 5.1 - 6 ...
- THEKEY
追溯历史,有据可查的身份证明是中国隋唐时期的“鱼符”,只为达官贵人证明身份等级,后演变为“龟符”.“牙牌”.“腰牌”等,直至近现代时期才出现真正意义的身份证,增加了个人信息描述.由于过去的生产力水平较 ...
- hdu-1058(map)
题意:输出第n个能拆分成由,2,3,5,7中的一个或者多个组成的数: 解题思路:a[i+1]=a[i]*2;a[i+2]=a[i]*3;a[i+3]=a[i]*5;a[i+4]=a[i]*7;然后把重 ...
- Java拦截器
拦截器,主要用于拦截前端请求,常用于登录检查. 下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码: 配置方式: 1.web.xml中配置监听器,对于所有的 ...
- Android热修复原理
参考:https://www.cnblogs.com/popfisher/p/8543973.html 一. AndFix AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法. ...
- java Builder模式创建不可变类
package com.geostar.gfstack.operationcenter.logger.manager.common; /** * Created by Nihaorz on 2017/ ...
- 使用Google ZXing生成和解析二维码
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...