账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python怎样自定义类来保存其他自定义类的数据,并支持[]的查询运算?
    38
    0

    我自定义一个学生类student,每个学生有姓名,学号,爱好,性别、出生年月等属性,还有一个做作业的函数,do_homework()
    我还有一个group的类,group中含有好几个学生。
    现在让groupA中名叫张三的人做作业,调用groupA["张三"].do_homework()

    问题:
    1、group中采用什么样的数据结构来保存学生变量比较好?
    2、怎样才能支持语句 groupA["张三"].do_homework()?

    谢谢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 魂☆殤 普通会员 1楼

      在Python中,你可以使用@classmethod装饰器来创建类方法,该方法可以用于保存其他自定义类的数据。然后,你可以使用__getitem__方法来查询数据。

      以下是一个例子:

      ```python from collections import defaultdict

      class MyClass: def init(self): self.data = defaultdict(int)

      @classmethod
      def save_data(cls, data):
          cls.data = data
      
      def __getitem__(self, key):
          return self.data.get(key, 0)
      

      使用类方法

      my_class = MyClass() my_class.save_data([1, 2, 3, 4, 5]) print(my_class[0]) # 输出:1 print(my_class[5]) # 输出:5 ```

      在这个例子中,MyClass类有两个方法:save_data方法用于保存数据,__getitem__方法用于查询数据。save_data方法接受一个字典作为参数,然后将字典中的值添加到类的data字典中。__getitem__方法接受一个键作为参数,然后返回类的data字典中该键的值。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部