用Python写,class Person: def __init__(self): self.__name = '' self.__sex = '' def SetValue(self, n, s): self.__name = n self.__sex = s def Display(self): print("姓名:", self.__name) print("性别:", self.__sex) # 测试代码 r = Person() r.SetValue('张三', '男') r.Display()
时间: 2024-04-28 16:23:19 浏览: 164
这段代码定义了一个名为 Person 的类,该类包含一个构造函数 __init__ 和两个方法 SetValue 和 Display。构造函数初始化了两个私有变量 __name 和 __sex,SetValue 方法用于设置两个私有变量的值,而 Display 方法用于打印出两个私有变量的值。
在测试代码中,首先创建了一个 Person 类的实例 r,然后调用 SetValue 方法设置了 r 对象的 __name 和 __sex 变量的值,最后调用 Display 方法打印出 __name 和 __sex 的值,输出结果为:
姓名: 张三
性别: 男
相关问题
class Person: def __init__(self, name, age, sex): self.name = name self.age = age self.sex = sex def getSex(self): return self.sex class Teacher(Person): def __init__(self, name, age, sex, course, salary): Person.__init__(self, name, age, sex) self.course = course self.salary = salary def getSex1(self): super().getSex() p1 = Teacher("Anna", 30, "woman", "English", 8000) print(p1.getSex1()) 为什么输出None
输出为None的原因是因为在getSex1方法中,没有返回super().getSex()的返回值。在Python中,如果函数没有明确的返回语句,则默认返回None。所以,当调用p1.getSex1()时,返回的就是None。要修正这个问题,可以在getSex1方法中添加return语句,将super().getSex()的返回值返回出来。例如:
```python
def getSex1(self):
return super().getSex()
```
这样,调用p1.getSex1()就会返回"woman",而不是None。
(1)根据下面的要求实现“人”类Person: Person类的属性: name 姓名 ,私有属性(注意私有属性的设置方式) sex 性别 ,私有属性 Person类的方法: 构造方法 ,有参数(self,name, sex) get_name(self) 获得人的姓名 get_sex(self) 获得人的性别,返回’男’,或‘女’ set_name(self,name) 设置姓名 set_sex(self,sex) 设置性别,只能接受’m’,’w’或’M’,’W’,表示男,女。 __str__(self)方法, 返回人的姓名和性别 (2)继承上题中的Person类,派生学生类Student,要求如下: Student类的成员变量: score 表示学生的成绩(整数类型),私有属性 Student类的方法成员: 构造方法 ,参数(self,name, sex,score) ,前两个参数调用父类方法设置 getScore (self) 获得学生的成绩 setScore (self,score) 获得学生的成绩,验证成绩在0-100之间有效 __str__(self)方法, 返回人的姓名和性别和成绩 (3)根据你上面的设计,若有语句: s0=Person(“wang”, “m”); print(s0) s1=Student(“lee”, “W”,90); print(s1.__str__()) 请写出上面程序段的运行结果。
代码实现如下:
```python
class Person:
def __init__(self, name, sex):
self.__name = name
self.__sex = sex
def get_name(self):
return self.__name
def get_sex(self):
return '男' if self.__sex == 'm' or self.__sex == 'M' else '女'
def set_name(self, name):
self.__name = name
def set_sex(self, sex):
if sex in ['m', 'M', 'w', 'W']:
self.__sex = sex
def __str__(self):
return f"姓名:{self.__name},性别:{self.get_sex()}"
class Student(Person):
def __init__(self, name, sex, score):
super().__init__(name, sex)
self.__score = score
def get_score(self):
return self.__score
def set_score(self, score):
if 0 <= score <= 100:
self.__score = score
def __str__(self):
return f"{super().__str__()},成绩:{self.__score}"
```
运行以下代码:
```python
s0 = Person("wang", "m")
print(s0)
s1 = Student("lee", "W", 90)
print(s1.__str__())
```
输出:
```
姓名:wang,性别:男
姓名:lee,性别:女,成绩:90
```
解释:创建了一个Person对象s0,姓名为“wang”,性别为“m”,输出字符串“姓名:wang,性别:男”。创建了一个Student对象s1,姓名为“lee”,性别为“W”,成绩为90,输出字符串“姓名:lee,性别:女,成绩:90”。
阅读全文