我~第一个来学习的
2021-04-25 19:27
采纳率: 100%
浏览 31

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时,提示设置年龄不合法。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳

    你是思路不清楚,还是要完整源代码呢?参考代码:

    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()

    已采纳该答案
    1 打赏 评论
  • 有问必答小助手 2021-04-26 11:27

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

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

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

    打赏 评论
  • 有问必答小助手 2021-04-26 17:09

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

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

    打赏 评论

相关推荐 更多相似问题