一. 导入自定义模块
- 在Python的安装目录下新建一个文件夹mymoudle,用来存放编写的文件。
- 首先,编写一个say.py文件。
def say_hello():
print("Hello World!")
def sys_name(name):
print("我的名字是:"+name)
- 其次,编写一个demo.py文件,用来导入say.py模块。
import say as s #给模块say定义一个别名s,后面的函数都用这个别名来引用
s.say_hello()
s.sys_name("林先生")
- 如果是使用Eclipse平台,直接运行demo.py就可以输出以下结果:
Hello World!
我的名字是:林先生
- 如果是使用Python IDLE运行,则需要在\Lib\site-packages\文件夹下面新建一个mymoudle.pth文件(文件名可以自己取,跟存放自定义模块的文件夹名保持一致),在文件中加入自定义模块的存放路径。我的存放路径是D:\Python34\mymoudle。
二. if name == ‘main’ 的解析
- if name == 'main’的意思是:
当.py文件被直接运行时,if name == 'main’之下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main’之下的代码块不被运行。 - 新建一个const.py文件,保存在上面新建的文件夹mymoudle里面。
PI=3.14
def main():
print("PI:",PI)
if __name__=="__main__":
main()
- 再新建一个area.py文件,用来导入const.py模块。
from const import PI
def calc_round_area(radius):
return PI*(radius**2)
def main():
print("round area:",calc_round_area(2))
main()
输出结果是:
round area: 12.56
如上,我们可以看到if name == 'main’相当于Python模拟的程序入口,Python本身并没有这么规定,这只是一种编码习惯。由于模块之间相互引用,不同模块可能有这样的定义,而程序入口只有一个。到底哪个程序入口被选中,这取决于__name__的值。
三. __init__与self的解析
1.Python中self的含义:
self 表示自己,本身。python的self,是个对象(Object),是当前类的实例。
2. Python中规定函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self。
3. 实例:
class Person(object):
def __init__(self, newPersonName):
self.name = newPersonName
'''
通过访问self.name的形式,实现了:
1.给实例中,增加了name变量
2.并且给name赋了初值,为newPersionName
'''
def sayYourName(self):
'''
初始化self对象,使得其中有了name变量,
可以访问name值
'''
print('My name is %s' %self.name)
def selfAndInitDemo():
personInstance = Person('Tim')
personInstance.sayYourName()
if __name__ == '__main__':
selfAndInitDemo()
输出结果:
my name is Lin