【python51--__name__属性】
一、基础知识
1、__name__ == '__main__'
所有模块都有一个__name__属性,__name__的值取决于如何应用模块,在作为独立程序运行的时候,__name__属性的值是‘__main__’,而作为模块导入的时候,这个值就是该模块的名字了
if __name__ == '__main__'
test()
含义:如果name调用的是主程序的则,运行if里面的test()语句,而不是其他的(如导入的包)的语句
2、搜索路径:python模块的导入需要一个路径搜索的过程,导入一个hello模块,Python需要找到一个叫hello.py的文件,如果找到就搜索成功即导入成功,找不到就失败
-- Python搜索相关路径下的模块
>>> import sys
>>> sys.path
['', '/Users/wufq/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
>>> #一般常用的是/site-packahes路径,按照这个逻辑来说,我们只需要告诉模块文件在哪里,就可以让Python在此路径下找
--存放Python的模块文件
>>> import Temperature
Traceback (most recent call last):
File "<pyshell#2>", line , in <module>
import Temperature
ModuleNotFoundError: No module named 'Temperature'
>>> sys.path.append("/Users/wufq/Documents/test")
>>> sys.path
['', '/Users/wufq/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/wufq/Documents/test']
>>> import Temperature
>>> Temperature.c2f()
89.6
>>> '''
|--代码解释:
|-- 先导入:import Temperature,报错,原因是python在搜索路径下没有找到这个包
|-- 解决方法:把Temperature文件所在的路径放到python的搜索路径下:sys.path.append("/Users/wufq/Documents/test"),查看一下是不是已经加入:sys.path
|-- 再次导入验证:import Temperature --> Temperature.c2f() --> 89.6
'''
3、包(package)
-- 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字
-- 在文件夹中创建一个__init__.py的模块文件,内容可以为空明
-- 将相关的文件放入文件中
import IM.Temperature as tr print(tr.c2f())
print(tr.f2c()) '''
|-- 代码解析:
|--、先创建一个文件夹IM,并把Temperature.py文件放到IM文件夹内,并创建一个空的__init__.py文件
|--、新建一个calc.py文件,编写相应的代码(即:上面的代码)
|--、import时必须带着包名IM(import IM.Temperature as tr),否则就会报错
'''
4、如果不想把相应的模块放在当前文件夹内,最好的选择是?
放在site-packages文件夹内,因为他就是存放模块的文件夹
5、import urllib.request语句,这个urllib是什么
urllib是负责管理url的包,用于访问网址
6、如何区分一个文件夹是普通的文件夹还是包
主要看这个文件夹内是否含有__init__.py,如果有则是包,并且__init__.py可以是空文件,也可以里面写一些代码
【python51--__name__属性】的更多相关文章
- __name__属性
#coding=utf-8#首先我们分别看一下这个模块在不同场景中的__name__的值print __name__ #其次我们看一下__name__属性的常用情况if __name__==" ...
- Python的程序入口 __name__属性
python中每个模块都有一个 '__name__' 属性,当其值为 '__main__' 时,表名该模块自身在运行,否则是被引入的. 当一个模块被当做一个整体调用的时候,模块名.__name__ 的 ...
- Python中__name__属性的妙用
在Python中,每一个module文件都有一个built-in属性:__name__,这个__name__有如下特点: 1 如果这个module文件是被别的文件导入的,那么,该__name__属性的 ...
- Python 的__name__属性
Python 的__name__属性: 一个模块被另一个程序第一次引入时,其主程序将运行. 如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身 ...
- 11 模块、模块的搜索顺序、__file__内置属性、__name__属性
模块的概念 一个python文件就是一个模块. 模块名同时也是一个标识符,需要符合标识符的命名规则. 在模块中定义的全局变量.函数.类 都是个外界提供的直接使用的工具. 模块就好比工具包,要想使用一个 ...
- python中__name__属性的使用
python常用模块目录 1.打印出函数名字而非函数名对应的地址 )打印的是函数地址 def func(): print("我是%s函数"%func) func() ------- ...
- Python - 属性简介"__name__"
模块是对象,并且每个模块都有一个内置属性__name__.当一个模块被直接运行的时候,该模块__name__的值就等于缺省的'__main__'.如果一个模块被import ,那么这个被引入模块__n ...
- python的__name__和dir()属性
1.__name__属性 一个模块被另一个程序第一次引入时,其主程序将运行.如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行.示例 ...
- if __name__== "__main__" 的意思(作用)python代码复用
if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog http://www.dabu.info/if-__-name__ ...
- python动态获取对象的属性和方法 (转载)
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...
随机推荐
- mybatis之接口绑定
接口绑定方案 mybatis中,提供了一套接口绑定方案,程序员可以提供一个接口,然后提供对应接口的一个mapper.xml文件.MyBatis会自动将接口和xml文件进行绑定.实际上就是mybatis ...
- 域名重新绑定ip时访问地址NotFount404
情形描述:部署在A服务器IIS上的asp.net程序,搬迁到B服务器上,重新绑定域名和ip后.再访问网址时有些电脑能正常访问,而有些电脑报404 not found错误. 经分析发现是个人电脑网络设置 ...
- pip install pyinstaller
C:\Users\coder211\Desktop>pip install pyinstallerCollecting pyinstaller Downloading PyInstaller-3 ...
- 6.Daemon线程
1.如下代码: package com.bawei.multithread; public class Recursive { private static int counter = 0; publ ...
- scu 4439 Vertex Cover
题意: 给出n个点,m条边,将若干个点染色,使得每个边至少有一点染色,问至少染多少个点. 思路: 如果是二分图,那就是最小点覆盖,但是这是一般图. 一般图的最小覆盖是npc问题,但是这题有一个条件比较 ...
- CocoaPod 问题(I)
问题一 报错:_OBJC_CLASS_$_ 方案:https://blog.csdn.net/duxinfeng2010/article/details/8265273 问题二: [!] Oh no, ...
- 微信小程序制作家庭记账本之四
第四天,仍然对记账本代码进行研究,对按钮的大小设置,颜色,具体位置进行分析,但其中很多代码都不明白.
- 限制访问次数例子和Ajax的some
-- 限制访问次数作业解答 -- -- urls.py 里-- from django.conf.urls import url from django.contrib import admin fr ...
- goldengate 12.3 实现mysql数据及DDL实时同步
以下环境在mysql 5.7上完成. set mysql_home=mysql安装路径 set path=%mysql_home%\bin;%path% 首先要准备mysql的启动,可参考:http: ...
- jetbrain_ia
在激活Jetbrains旗下任意产品的时候选择激活服务器填入以下地址便可成功激活 http://idea.liyang.io 最新方法(2018.3.4) http://blog.csdn.net/w ...