| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- """
- 对象之间的依赖关系和运算符重载
- Version: 0.1
- Author: 骆昊
- Date: 2018-03-12
- """
- class Car(object):
- def __init__(self, brand, max_speed):
- self._brand = brand
- self._max_speed = max_speed
- self._current_speed = 0
- @property
- def brand(self):
- return self._brand
- def accelerate(self, delta):
- self._current_speed += delta
- if self._current_speed > self._max_speed:
- self._current_speed = self._max_speed
- def brake(self):
- self._current_speed = 0
- def __str__(self):
- return '%s当前时速%d' % (self._brand, self._current_speed)
- class Student(object):
- def __init__(self, name, age):
- self._name = name
- self._age = age
- @property
- def name(self):
- return self._name
- # 学生和车之间存在依赖关系 - 学生使用了汽车
- def drive(self, car):
- print('%s驾驶着%s欢快的行驶在去西天的路上' % (self._name, car._brand))
- car.accelerate(30)
- print(car)
- car.accelerate(50)
- print(car)
- car.accelerate(50)
- print(car)
- def study(self, course_name):
- print('%s正在学习%s.' % (self._name, course_name))
- def watch_av(self):
- if self._age < 18:
- print('%s只能观看《熊出没》.' % self._name)
- else:
- print('%s正在观看岛国爱情动作片.' % self._name)
- # 重载大于(>)运算符
- def __gt__(self, other):
- return self._age > other._age
- # 重载小于(<)运算符
- def __lt__(self, other):
- return self._age < other._age
- if __name__ == '__main__':
- stu1 = Student('骆昊', 38)
- stu1.study('Python程序设计')
- stu1.watch_av()
- stu2 = Student('王大锤', 15)
- stu2.study('思想品德')
- stu2.watch_av()
- car = Car('QQ', 120)
- stu2.drive(car)
- print(stu1 > stu2)
- print(stu1 < stu2)
|