213

一、.py文件里面包含全局变量

print(vars())输出结果如下:

{'__name__': '__main__',

'__doc__': None,

'__package__': None,

'__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000014BE5CBA470>,

'__spec__': None,

'__annotations__': {},

'__builtins__': <module 'builtins' (built-in)>,

'__file__': 'E:/python_code/2/13day/index.py',

'__cached__': None}

其中比较常用的是:

__doc__    打印文件注释,.py文件中开头的三个引号中的内容

__file__     打印当前py文件的全路径名称

__package__   导入文件所在的包,即导入py文件所在的文件夹名,文件夹层级用.间隔,例如 lib.test

__cached__   python3中才有,缓存文件,导入文件执行的.pyc文件全路径

__name__   如果是当前py文件运行则返回__main__,如果其他文件导入运行,则返回当前导入文件所在的文件夹路径

__builtins__  内置函数是存放在__builtins__中

所以为防止导入模块后直接运行,可以用 __name__ == __main__ 进行判断:

 二、利用__file__给sys.path中添加相对路径

1、相对路径可以把整体文件拷贝到任何目录运行

2、当文件名修改不影响添加的相对路径

#!usr/bin/env python
# -*- coding:utf-8 -*-
import sys,os
p1 = os.path.dirname(__file__) #__file__获取当前运行文件的路径,dirname是去掉.py文件后的路径
py_path = os.path.join(p1,'lib') #将去掉.py文件后的路径连接上lib,E:/python_code/2/day14\lib
sys.path.append(py_path) #将组合后的文件路径加入到sys.path列表中
from lib import fuc1
print(fuc1.f1())

最新文章

  1. Oracle基本查询语言
  2. babel 配置探究及错误解析
  3. mysql my.cnf配置文件详解
  4. x264中I,P,B帧和PTS,DTS的关系
  5. API
  6. web开发中的 emmet 效率提升工具
  7. hdu 2255 奔小康赚大钱--KM算法模板
  8. 转: html表单中get方式和post方式的区别
  9. JavaWeb学习记录(七)——MVC操作数据库增删改查与分页功能
  10. [div+css布局]命名规则
  11. Java注意的地方
  12. (转)Ehcache作为分布式缓存的研究
  13. POJ 1179 IOI1998 Polygon
  14. session绑定javaBean
  15. php的一些小笔记--字符串
  16. 在Struts2中使用poi进行excel操作下载的时候报getOutputStream() has already been called for this response 错误 [转]
  17. 纯代码 自己主动屏幕适配iPhone button
  18. 本地idea调试spark2.x程序
  19. list不是模板
  20. 爬虫_糗事百科(scrapy)

热门文章

  1. spring中依赖注入
  2. Codeforces Round #479 (Div. 3) 题解 977A 977B 977C 977D 977E 977F
  3. Leetcode92. Reverse Linked List II反转链表
  4. 【BZOJ3944】Sum
  5. leetcode-105-从前序与中序遍历构造二叉树
  6. [JZOJ4633] 【GDOI2017模拟7.15】萌萌哒
  7. Apache添加多端口及实现单ip多端口映射的方法
  8. Python基础笔记_Number类型
  9. C语言利用动态数组实现顺序表(不限数据类型)
  10. 洛谷P3376【模板】网络最大流  Dinic模板