v1h*_*1h5 4 python python-module python-2.7
最近我注意到使用模块是保持我的python编程整洁的好选择.为了开始,我创建了一个模块(名为oop.py),其中包含一个类,如下所示:
#Module named oop
class Team:
def __init__(self):
print "class Team initialized"
def displayTeam(self):
print "Team name: ", self.name, ",Rank :" , self.rank
def setTeam(self,name,rank):
self.name = name
self.rank = rank
t1 = Team()
t1.setTeam("Man-Utd", 1)
t1.displayTeam()
Run Code Online (Sandbox Code Playgroud)
根据python文档,如果我们想要使用模块中的特定属性,那么我们使用<from module_name> import <attribute>.我只想加载"班级队"
在另一个python代码(名为oop1.py)中,我只是导入了上面的模块.oop.py如下所述:
#This is oop1.py.
#Importing module oop
from oop import Team
Run Code Online (Sandbox Code Playgroud)
python oop1.py终端的输出是:
class Team initialized
Team name: Man-Utd ,Rank : 1
Run Code Online (Sandbox Code Playgroud)
通过声明from oop import Team,我期望只加载类定义.为什么t1 = Team()
t1.setTeam("Man-Utd", 1)
t1.displayTeam()
来自oop.py的额外行会被执行?
模块中是否允许初始化?如果我只想要类Team结构而不是模块的其他内容,我该怎么办?如果我在某处错了,请告诉我.
在python 模块中是对象.为了创建模块对象,执行它包含的代码,并将找到的绑定作为属性添加到对象中.
指定要导入的内容不会改变整个模块执行的事实,之后只会将单个绑定放入作用域中import.
这是标准的做法,把你做任何代码不想要一个后卫后导入时执行:
if __name__ == '__main__':
# your code here
Run Code Online (Sandbox Code Playgroud)
__name__是一个特殊的全局,__main__仅在执行模块时.在导入期间,它被设置为模块的名称(因此不会执行该代码).
要了解更多关于模块读取文件.还有一节解释了上面提到的警卫:执行模块作为脚本
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |