【问题标题】:How can I pass parameters to the class in python如何将参数传递给python中的类
【发布时间】:2021-09-11 11:51:09
【问题描述】:

我尝试在一个类里面创建一个类,如何传递参数? 这是我的代码,有人可以帮我纠正这个代码:

class student:

    def __init__(self, name, rollno, brand, ram, cpu):
        self.name = name
        self.rollno = rollno
        self.lap = self.laptop(self, brand, ram)

    def show(self):
        print(self.name, self.rollno)

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

        def show(self):
            print(self.brand,self.ram,self.cpu)

        def __str__(self):
            return self.brand, self.ram, self.cpu

    def __str__(self):
        return self.name, self.rollno

    s1=student("Raj",3,"hp","i5",16)
    s2=student("Ram", 2, "dell", "i3", 8)
    
    s1.show()

【问题讨论】:

    标签: python-3.x class parameter-passing


    【解决方案1】:

    必须通过外部类的构造函数传递内部类的参数:

    class student:
    
        def __init__(self, name, rollno, brand, ram, cpu):
            self.name = name
            self.rollno = rollno
            self.lap = self.laptop(brand, ram, cpu)
    
        def show(self):
            print(self.name, self.rollno)
            self.lap.show()
    
        class laptop:
            def __init__(self, brand, ram, cpu):
                self.brand = brand
                self.ram = ram
                self.cpu = cpu
    
            def show(self):
                print(self.brand, self.brand, self.cpu)
    

    结果:

    >>> s1=student("Raj",3,"hp","i5",16)
    >>> s1.show()
    Raj 3
    hp hp 16
    >>> s2=student("Ram", 2, "dell", "i3", 8)
    >>> s2.show()
    Ram 2
    dell dell 8
    

    【讨论】:

    • 不,我仍然无法将参数传递给品牌、内存和 cpu 等变量。
    • @sam2611 您是否已将变量添加到学生类构造函数def __init__(self, name, rollno, brand, ram, cpu): 和笔记本电脑类构造函数调用self.lap = self.laptop(brand, ram, cpu)
    猜你喜欢
    • 2021-11-18
    • 2017-12-29
    • 1970-01-01
    • 2020-08-26
    • 2020-04-28
    • 1970-01-01
    • 2013-07-27
    • 2013-11-30
    • 1970-01-01
    相关资源
    最近更新 更多