Python的类, 模块与包概念

Python的类模块与包概念

http://www.cnblogs.com/allenblogs/archive/2011/05/24/2055149.html

可以这么理解

1. 类就是类了.

2. 模块就是py文件模块名就是py文件名去掉后缀.py

3. 包就是文件夹包名就是文件夹名.

4. 类放在模块中(类在py文件中定义); 模块放在包中(py文件放在文件夹中); 包中也可以有包(文件夹可以有子文件夹)

1. 

类就是类了.

定义一个类

class MyClass(OtherClass):  
    myClassIndex = 1
    def __init__(self, a, b, c, classIndex):  
        # 调用父类的构造函数  
        OtherClass.__init__(self, a, b, c)  
        self.myClassIndex = classIndex  
    # 重写父类的方法  
    def DoSomething(self):  
        print("MyClass Index is %d" %(self.myClassIndex))  

2. 模块

模块可以理解为对应于一个py文件. py文件中定义一些函数变量类等.

例如文件

# MyModule1.py
def MyDoSomething(a)
print(a)
class MyClass1:  
    myClassIndex = 1
    def __init__(self, classIndex):  
        self.myClassIndex = classIndex  
def DoSomething(self):  
        print("MyClass Index is %d" %(self.myClassIndex))  

导入这模块,就可重用这些函数和变量。

导入例子:

# Caller.py
import MyModule1
print(__name__)	 		# 打印本模块的名字
print(MyModule1.__name__)	# 打印MyModule1模块的名字
MyModule1.MyDoSomething('Hi')	# 调用MyModule1的MyDoSomething方法

注:

模块作为主程序调用时, __name__的值是__main__, 否则值就是模块名了

3. 模块的路径搜索

MyModule1被导入后,python解释器就在当前目录下寻找MyModule1.py的文件如果没有则再从环境变量PYTHONPATH寻找如果这环境变量没有设定解释器还会在安装预先设定的的一些目录寻找。

更强大的是这个搜索路径列表可以动态的添加.非常简单,就是使用listappend()insert()增加新的目录.

#module2.py
import sys
import os
print(sys.path)
workpath = os.path.dirname(os.path.abspath(sys.argv[0]))
sys.path.insert(0, os.path.join(workpath, 'modules'))
print(sys.path)

4. 

包可以理解为文件夹你可以按照不同的功能把模块放到不同的包里面去(就是把py文件按功能放到不同的文件夹里面去).

但是要特别注意的是当文件夹当作包使用时文件夹需要包含__init__.py文件主要是为了避免将文件夹名当作普通的字符串. __init__.py的内容可以为空一般用来进行包的某些初始化工作或者设置__all__, __all__是在from package-name import *这语句使用的,全部导出定义过的模块.

包怎么使用?

http://blog.csdn.net/cay22/article/details/8638867

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值