inheritance & class variable DEMO

转载 2015年07月10日 08:34:31
#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
        
class MITPerson(Person):
    nextIdNum = 0 #identificaiton number
    
    def __init__(self, name):
        Person.__init__(self, name)
        self.idNum = MITPerson.nextIdNum
        MITPerson.nextIdNum += 1
        
    def getIdNum(self):
        return self.idNum
        
    def __lt__(self, other):
        return self.idNum < other.idNum


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


p1 = MITPerson('Eric Xing')


p1.getName()
Out[3]: 'Eric Xing'


p1.getLastName()
Out[4]: 'Xing'


p1.setBirthday(datetime.date(1970,9,12))


p1.getAge()
Out[6]: 16372


print p1
Eric Xing


p2 = MITPerson('Robert Miller')


p2.getName()
Out[9]: 'Robert Miller'


p2.getLastName()
Out[10]: 'Miller'


p2.setBirthday(datetime.date(1990,6, 23))


p2.getAge()
Out[12]: 9148


p1.getIdNum()
Out[13]: 0


p2.getIdNum()
Out[14]: 1


p1 < p2
Out[15]: True


p1 > p2
Out[16]: False


L = [p2, p1]


L.sort()

for e in L:
    print e.getName(), e.getIdNum()
    
Eric Xing 0
Robert Miller 1

相关文章推荐

Kotlin-08.类和继承(class/Inheritance)

类和继承(class/Inheritance);kotlin类有一个主构造函数,多个次构造函数;省略constructor,注解或可见性修饰符;主构造函数初始化init{ };主构造函数中声明类属性成...

Cannot refer to a non-final variable mylis inside an inner class defined in a different method

今天测试jedis的发布订阅模式的时候偶然碰到这样的问题,匿名内部类不能引用外部类中非final类型的变量。 查了下看到有人说原因如下: 局部匿名类在源代码编译后也是要生成对应的class文...

Cannot refer to a non-final variable i inside an inner class defined in a differ

涉及到闭包(closure)的概念。   不同语言对闭包选择了不同的支持,相比之下,C#中就能够在匿名函数中引用非final的外部变量,例如这篇帖子中提到的C#代码: Java代码  L...

Cannot refer to a non-final variable response inside an inner class defined in a different method

内部类中调用外部类的局部变量。若是没有final的话就会出现报错: 匿名内部类不能访问外部类方法中的局部变量,除非该变量被声明为final类型   1. 这里所...

[Ruby笔记]28.Ruby @@class_variables 类变量 vs @instance_variable 实例变量

@@class_variablesTestCase 想象这样一个场景,一次小班授课,参加的学生有A B C 三人 ,这时候老师开始提问了,我们使用类Student 记录 : 到场的学生名单; 每人...

confuse about ref class / value class in declare variable

Saturday, March 19, 2011 9:41 AM bitfish_jzl  ref class RefSquare { public...
  • tcdddd
  • tcdddd
  • 2011年09月19日 20:57
  • 669

VUE2.0 全套 demo 讲解 基础 5(class 与 style 绑定)

在我即将在分享的专题里我现发一个问题,原本对于class和style的绑定我不想分享的,我觉得没多大意义,但是我错了,你别看一个小小的class和style绑定,用的好和用的差区别很大,特别在一些组件...

利用vector与class完成的链表排序操作demo

//ListClass.h#pragma onceclass ListClass{public: ListClass(void); ListClass(int var,string name); vi...

Gradle Plugin 修改其class 字节码的Demo

  • 2017年04月19日 01:25
  • 18.33MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:inheritance & class variable DEMO
举报原因:
原因补充:

(最多只允许输入30个字)