簡體   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