Python 这个内部类用法正确吗?

Python 这个内部类用法正确吗?,python,Python,我试图理解内部类的逻辑,如果用法不正确,应该怎么做 我的意思是,在外部类中使用laptop参数是正确的方法还是应该在内部类中使用?是否有特殊原因需要laptop成为Student的内部类,而不是它自己的外部类?通常,内部类表示依赖于外部类的子数据结构(例如,链接列表中的节点),而不是可以独立存在的独立数据结构。当然,我看不出有任何错误。如果笔记本电脑仅用于学生,则无所谓。如果笔记本电脑是它自己的实体,有一天在没有学生的情况下可以使用,那么可能不会。但在Python中嵌套类实际上只是一种名称空间和

我试图理解内部类的逻辑,如果用法不正确,应该怎么做


我的意思是,在外部类中使用laptop参数是正确的方法还是应该在内部类中使用?

是否有特殊原因需要
laptop
成为
Student
的内部类,而不是它自己的外部类?通常,内部类表示依赖于外部类的子数据结构(例如,
链接列表中的
节点
),而不是可以独立存在的独立数据结构。当然,我看不出有任何错误。如果
笔记本电脑
仅用于
学生
,则无所谓。如果
笔记本电脑
是它自己的实体,有一天在没有
学生
的情况下可以使用,那么可能不会。但在Python中嵌套类实际上只是一种名称空间和组织技术;它对语义没有真正的影响,除了你如何引用事物。您可能也会发现有帮助(尽管避免第一个答案;出于某种原因,这是一个关于Python问题的Java答案),而且,由于您询问正确性,因此值得注意的是(对于大多数Python程序员来说)建议函数名使用
snake\u case
,而不是
PascalCase
,而不是
AddRam
(后者更像是一个C#约定)。@GreenCoveGuy我想让笔记本电脑与每个学生联系起来,有没有其他方法可以做到这一点,还是没有必要呢?我个人只想让
Laptop
成为一个普通的顶级类。你可以在
student
的同一个文件中定义它(Python对文件中出现的类数量没有限制)。嵌套类实际上适用于内部类没有外部类就没有意义的情况。GreenCoveGuy的节点示例很好,因为
节点
在其所在的数据结构之外永远不会有用,而
笔记本电脑
如果没有
学生
(也许它属于一位讲师,或者它还没有被卖掉,就在某个地方的架子上)
class Student:

    def __init__(self, name, no, laptop):
        self.name = name
        self.no = no
        self.laptop = laptop

    class Laptop:

        def __init__(self, brand, cpu, ram):
            self.brand = brand
            self.cpu = cpu
            self.ram = ram

        def AddRam(self):
            self.ram += 16



s1 = Student("John Doe", 41,Student.Laptop("Asus","I7 10950H",16))
print(s1.name)
print(s1.laptop.brand, s1.laptop.cpu, s1.laptop.ram)
s1.laptop.AddRam()
print(s1.laptop.brand, s1.laptop.cpu, s1.laptop.ram)