Discuss / Python / 我理解题目说避免输入字符串,也就是应该可以直接用0,1赋值。所以在初始化、赋值时都应判断参数时枚举变量或者是变量的值。

我理解题目说避免输入字符串,也就是应该可以直接用0,1赋值。所以在初始化、赋值时都应判断参数时枚举变量或者是变量的值。

Topic source

本地的Yoyo

#1 Created at ... [Delete] [Delete and Lock User]

from enum import  Enum, unique

@unique

class Gender(Enum):

    Male=0

    Female=1

class Student:

    def __init__(self,name, gender):

        self.name=name

        self.gender=gender

    @property

    def gender(self):

        return self._gender

    @gender.setter

    def gender(self,gender):

        if isinstance (gender, Gender):

            self._gender=gender

        if isinstance(gender,int):

            if gender==0:

                self._gender=Gender.Male

            elif gender==1:

                self._gender=Gender.Female

            else:

                raise ValueError ("The value of gender can only be '0' or '1'!")


  • 1

Reply