自定义学生类Student,成员包含:实例属性sno、sname、age,类属性count,实例方法show(用于显示sno、sname、age信息),类方法classAddCount(实现count属性累加1),静态方法staticShowCount(显示当前count值)。要求属性全部为私有。并完成如下问题:
(1)创建两个Student对象,分别访问上述成员方法,同时用类名访问上述成员方法,输 出结果。
(2)为Student对象动态增加新成员性别sex和方法setGrade(设置学生年级)
(3)在类外部访问sno私有实例属性
(4)我们知道,若在类外部通过对象尝试修改age值是允许的,但是直接修改属性值可能带来一些问题。例如,可能直接设置成不合法的值,如age=-10。所以,为了避免客户端直接修改属性的问题,请在类中提供get()方法返回age的值,以及set()方法设置age的新值,age>0时设置成为新值,age<=0时,提示设置年龄不合法。
class Student:
_count = 0
@classmethod
def classAddCount(cls):
cls._count += 1
@staticmethod
def staticShowCount():
print(Student._count)
def __init__(self):
pass
这个很简单的,你自己先写一下。哪里不会再来问
class Student:
__count = 0
@classmethod
def classAddCount(cls):
cls.__count += 1
@staticmethod
def staticShowCount():
print(Student.__count)
def __init__(self,sno,sname,age):
self.__sno = sno
self.__sname = sname
self.__age = age
def show(self):
print(f"sno:{self.__sno}、sname:{self.__sname}、age:{self.__age}")
@property
def age(self):
return self.__age
@age.setter
def age(self, value):
if isinstance(value, int) and value>0:
self.__age = value
else:
print("设置年龄不合法")
st1 = Student("0005","aaa",19)
st1.age = "vb"
print(st1.age)
st1.age = -1
print(st1.age)
st1.age = 111
print(st1.age)
st1.show()
Student.classAddCount()
Student.classAddCount()
Student.staticShowCount()
>>> class Student:
__count = 0
def __init__(self, sno, sname, age):
self.__sno = sno
self.__sname = sname
self.__age = age
self.sex = None
self.grade = None
@classmethod
def classAddCount(cls):
cls.__count += 1
@staticmethod
def staticShowCount():
print(Student.__conut)
def setSex(self, sex):
self.sex = sex
def setGrade(self, grade):
self.grade = grade
def set(self, age):
if age > 0:
self.__age = age
else:
print('设置年龄不合法')
def get(self):
return self.__age
>>> a = Student(5, 'Xufive', 10)
>>> b = Student(8, 'ChenIrene', 9)
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y