我如何从python方法中继承2个值

时间:2018-09-17 13:43:32

标签: python python-3.x

class a():
    def __init__(self):
        print("hello")
    def add(self,a,b):
        print("c = {}".format(self.a+self.b))
class b(a):
    def __init__(self):
        a.__init__(self)
h = b()
h.add(2,3)

请告诉我我的错误代码不起作用

  

错误回溯(最近一次调用最近):文件“ Inheritance.py”,第10行,在       h.add(2,3)文件“ Inheritance.py”,第5行,添加       print(“ c = {}”。format(self.a + self.b))AttributeError:'b'对象没有属性'a'

1 个答案:

答案 0 :(得分:0)

当您定义class B时,将其定义为class B(A),它将继承class A的所有内容,还请注意,{实例已创建。

*使用def _init_(self)打印,对python3.6 +有效,否则请使用原始打印方法

f-strings

输出:

class A():

    def __init__(self):
        print("hello")

    def add(self, a, b): 
        print(f"c = {a + b}")

class B(A):
    pass

h = B() 
h.add(2,3)

如果您想创建变量(xenial)vash@localhost:~/python/stack_overflow$ python3.7 inherit.py hello c = 5 h.a,则可以采用以下方法:

h.b

输出:

class A():

    def __init__(self, a, b):
        print("hello")
        self.a = a
        self.b = b

    def add(self):
        print(f"c = {self.a + self.b}")

class B(A):
    pass

h = B(2, 3)
print(h.a)
print(h.b)
h.add()