您的位置:首页 > 编程语言 > Python开发

ADT in python DEMO

2015-07-10 08:12 453 查看
#quote from MIT 'introduction to computation and programming using python, Revised'
import datetime

class Person(object):

def __init__(self, name):
"""Create a person"""
self.name = name
try:
lastBlank = name.rindex(' ')
self.lastName = name[lastBlank+1:]
except:
self.lastName = name
self.birthday = None

def getName(self):
"""Returns self's full name"""
return self.name

def getLastName(self):
"""Returns self's last name"""
return self.lastName

def setBirthday(self, birthdate):
"""Assumes birthdate is of type datetime.date
Sets self's birthday to birthdate"""
self.birthday = birthdate

def getAge(self):
"""Returns self's current age in days"""
if self.birthday == None:
raise ValueError
return (datetime.date.today() - self.birthday).days

def __lt__(self, other):
"""Returns True if self'name is lexicographically
less than other's name, and False otherwise"""
if self.lastName == other.lastName:
return self.name < other.lastName
return self.lastName < other.lastName

def __str__(self):
"""Returns self's name"""
return self.name


%run "C:\Users\Administrator\test.py"

p = Person('Eric Xing')

p.getName()

Out[51]: 'Eric Xing'

p.getLastName()

Out[52]: 'Xing'

p.setBirthday(datetime.date(1970,10,3))

p.getAge()

Out[54]: 16351

print p

Eric Xing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: