2017-02-04 50 views
-2

需要這個問題有所幫助:滿足以下規格的Python:如何規定一個範圍,以一個類變量

寫類:

  • 一個學生都有一個名字(任意字符串)和數字(範圍在1000-9999之間的整數)。
  • 嘗試使用超出指定範圍的數字創建Student對象會引發InvalidNumberError。
  • 學生對象只有一個行爲:學生的字符串表示形式由學生的姓名,後跟冒號和空格,後跟學生號碼組成。

我該如何規定學生人數的範圍?

+1

查找Python類中, '__init__'方法,'raise'語句和'__str__'方法。 – Harvey

+0

http://meta.softwareengineering.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems – EJoshuaS

回答

0

查找蟒蛇性質:http://www.python-course.eu/python3_properties.php

這不僅會檢查number是在Student的實例有效,但會檢查每一個你設置Student.number時間:

class Student: 

    valid_range = range(1000, 10000) # legal values will be 1000-9999 

    def __init__(self, name, number): 
     self.name = name 
     self.number = number 

    def __repr__(self): 
     return '{}: {}'.format(self.name, self.number) 

    @property 
    def number(self): 
     return self._number 

    @number.setter 
    def number(self, number): 
     if number in Student.valid_range: 
      self._number = number 
     else: 
      raise ValueError('Student number out of range: {}'.format(number)) 
相關問題