繁体   English   中英

从子 class 访问父类中具有相同名称的属性

[英]accessing attributes with same name in parent classes from child class

class name_1:
    def __init__(self,name1):
        self.name1=name1
class name_2:
    def __init__(self,name1):
        self.name1=name1
class id(name_1,name_2):
    def __init__(self,no,name1,name2):
        self.no=no
        super().__init__()        
    def pid(self):
        print(self.no^2)
    def names(self):
        names=self.name_1.name1+self.name_2.name1
        return(names)
        
obj1=id(12,"dwayne","johnson")
print(obj1.names())

AttributeError: 'id' object has no attribute 'name_1' how can i assign values to the parent class as dwayne and johnson and combine them into names variable in child class and print it PS: iam a newbie in python

您需要将name1name2传递给父类:

class Firstname:
    def __init__(self, name):
        self.firstname = name


class Lastname:
    def __init__(self, name):
        self.lastname = name


class Name(Firstname, Lastname):
    def __init__(self, no, name1, name2):
        self.no = no
        Firstname.__init__(self, name1)
        Lastname.__init__(self, name2)

    def pid(self):
        print(self.no ^ 2)

    def names(self):
        names = self.firstname + self.lastname
        return (names)


n = Name(12, "dwayne", "johnson")
print(n.names())

出去:

dwaynejohnson

编辑:使用FirstnameLastname作为Name的属性,这更接近你想要的:

class Firstname:
    def __init__(self, name):
        self.name = name


class Lastname:
    def __init__(self, name):
        self.name = name


class Name():
    def __init__(self, no, name1, name2):
        self.no = no
        self.firstname = Firstname(name1)
        self.lastname = Firstname(name2)

    def pid(self):
        print(self.no ^ 2)

    def names(self):
        names = self.firstname.name + self.lastname.name
        return (names)


n = Name(12, "dwayne", "johnson")
print(n.names())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM