#!/usr/bin/env python
#coding=UTF-8
#自定义list子类 添加对类似 [1,2,3] - [2,3]运算的支持
#这种自带两个__下划线的方法 是特殊方法
class SuperList(list):
def __sub__(self,b):
#self是SuperList的对象,可以使用类似 list[:] 的方式表示整个list对象
a = self[:]
b = b[:]
#如果list包含b中的元素,就移除,直到循环结束 len()返回list中元素个数
while len(b) > 0 :
element_b = b.pop() #pop() 从list中弹出最后一个元素值,并返回他的值
if element_b in a :
a.remove(element_b)
return a
#这里的-减号运算符代表__sub__() 方法,类似+ 代表__add()__
#特殊方法和运算符相等价
#print SuperList([1,2,3,4]) - SuperList([1,2])
#函数定义 是否为闰年
def isLeafYear(year):
return year%400==0 or (year%100!=0 and year%4==0)
我们再建立一个model.py文件,将utils模块导入
#! /usr/bin/env python
#coding=UTF-8
import utils #一个.py文件就构成一个模块
'''
import a as b # 引入模块a,并将模块a重命名为b
from a import function1 # 从模块a中引入function1对象。调用a中对象时
# 我们不用再说明模块,即直接使用function1,而不是a.function1。
from a import * #从模块a中引入所有对象 (类似Java的导包)
'''
#Python搜索模块顺序
'''
1. 程序所在的文件夹
2. 标准库的安装路径
3. 操作系统环境变量PYTHONPATH所包含的路径
'''
#模块.对象的方式来调用
a = utils.isLeafYear(2004)
print a
ls = utils.SuperList([2,3,4,5]) - utils.SuperList([1,2,5])
print ls
通过导入的方式使用现成的方法或者类,这就和Java C#中关于面向对象中类的操作比较相似了。