python小白求解答

自定义学生类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   # 类属性 记录班里一共多少个学生

    def __init__(self, name, sex, age,):      # 初始化,构造函数
        self.name = name
        self.age = age
        self.sex = sex
        self.__money = 0
        print(f"欢迎新同学{self.name},{self.sex},{self.age}")
        Student.count += 1    # 每次被实例化一次班里学生+1

    country = "中国"

    def get_country(self):         # 获取国家
        return self.country

    def set_country(self,country):    # 修改类属性
        self.country = country
    def get_money(self):
        print(f"{self.name} 余额:{self.__money}")
        return self.__money

    def set_money(self,money):        # 修改类属性money
        self.__money = money

    def __study(self):             # 私有方法  在外部无法直接调用
        print(f"{self.name}:在学习")

    def answer(self):
        print(f"{self.name}:在回答问题")

    def class_(self):             # 公有方法调用调用私有方法
        self.__study()

def main():

    zs = Student("张三","男",20) # 张三,20,男
    print(f"国家  {zs.get_country()}")
    zs.get_money()
    zs.class_()
    zs.answer()

    Tom = Student("Tom","男",19)           #Tom, 19, 男
    Tom.set_money(10000)            # 余额修改为10000
    Tom.set_country("美国")         # 改变国籍为美国
    print(f"国家   {Tom.get_country()}")
    Tom.get_money()
    Tom.class_()
    Tom.answer()


    zss = Student("吴敏", "女", 18)  # 吴敏,18,女
    print(f"国家  {zss.get_country()}")
    zss.get_money()
    zss.class_()
    zss.answer()
    print (f"班级学生总数为:{Student.num}位同学")
main()

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y