代码A
class Student(object):
def __init__(self, name, gender):
self.name = name
self.__gender = gender
def get_gender(self):
return self.__gender
** def set_gender(self,gender):**
** if gender == 'male' or 'female':**
** self.__gender = gender**
** else:**
** raise ValueError**
代码B
** if gender != 'male' or 'female':**
加黑的部分,为什么代码A就能通过测试,代码B就会报错ValueError呢??
真的不明白这个bug是怎么回事
代码b的or 改成and
A代码中 == 意思是性别是否为男或女,如果是,就修改。B代码中!= 意思是性别既不是男也不是女的时候,就不修改。怎么能说是一样的代码呢
你B代码中的or让你的意思变成了如果性别不是男,或者不是女的话,就直接报错。
Sign in to make a reply
心中熱望
代码A
class Student(object):
def __init__(self, name, gender):
self.name = name
self.__gender = gender
def get_gender(self):
return self.__gender
** def set_gender(self,gender):**
** if gender == 'male' or 'female':**
** self.__gender = gender**
** else:**
** raise ValueError**
代码B
class Student(object):
def __init__(self, name, gender):
self.name = name
self.__gender = gender
def get_gender(self):
return self.__gender
** def set_gender(self,gender):**
** if gender != 'male' or 'female':**
** raise ValueError**
** else:**
** self.__gender = gender**
加黑的部分,为什么代码A就能通过测试,代码B就会报错ValueError呢??
真的不明白这个bug是怎么回事