car2.py 953 字节
Newer Older
骆昊的技术专栏's avatar
骆昊的技术专栏 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
"""

属性的使用
	- 使用已有方法定义访问器/修改器/删除器

Version: 0.1
Author: 骆昊
Date: 2018-03-12

"""


class Car(object):

	def __init__(self, brand, max_speed):
		self.set_brand(brand)
		self.set_max_speed(max_speed)

	def get_brand(self):
		return self._brand

	def set_brand(self, brand):
		self._brand = brand

	def get_max_speed(self):
		return self._max_speed

	def set_max_speed(self, max_speed):
		if max_speed < 0:
			raise ValueError('Invalid max speed for car')
		self._max_speed = max_speed

	def __str__(self):
		return 'Car: [品牌=%s, 最高时速=%d]' % (self._brand, self._max_speed)

	# 用已有的修改器和访问器定义属性
	brand = property(get_brand, set_brand)
	max_speed = property(get_max_speed, set_max_speed)


car = Car('QQ', 120)
print(car)
# ValueError
# car.max_speed = -100
car.max_speed = 320
car.brand = "Benz"
print(car)
print(Car.brand)
print(Car.brand.fget)
print(Car.brand.fset)