Python 不同类中两个函数之间的链接

Python 不同类中两个函数之间的链接,python,function,class,oop,Python,Function,Class,Oop,我是Python新手,试图创建一个基于文本的冒险游戏,但遇到了一些问题。下面的代码代表了我目前的困境 class A(object): def funct1(self): pass def funct2(self): pass class B(object): def funct1(self): pass 我尝试从类B funct1链接到类A funct2,但未成功。虽然我了解类中每个函数之间的链接,例如self.funct2,但我仍然不

我是Python新手,试图创建一个基于文本的冒险游戏,但遇到了一些问题。下面的代码代表了我目前的困境

class A(object):
   def funct1(self):
      pass
   def funct2(self):
      pass

class B(object):
   def funct1(self):
      pass
我尝试从类B funct1链接到类A funct2,但未成功。虽然我了解类中每个函数之间的链接,例如self.funct2,但我仍然不清楚不同类中函数之间的链接

我尝试使用def uu init uuu,但我不确定它在这种情况下是如何应用的。任何帮助都将不胜感激

如果要使用B类中A的方法,则需要使用:

class A(object):
   def funct1(self):
      print("Hello from func1")

   def funct2(self):
      print("Hello from  func2")

class B(A):
    pass

b = B()
b.funct2()
b.funct1()
Hello from  func2
Hello from  func1
现在要调用类B中的继承方法,只需使用self.func1、self.func2

如果希望func1在类B中表现不同,可以重写该方法:

class A(object):
   def funct1(self):
      print("Hello from A class func1")

   def funct2(self):
      print("Hello from A class func2")

class B(A):
    def funct1(self):
        print("overridden method")


b = B()
b.funct2()
b.funct1()

Hello from A class func2
overridden method
如果希望实例具有名称属性,请在_init__方法中创建该属性:


在我提供的python实践手册链接中有一个关于类的很好的教程,我建议您去看看。

要访问其他类中的函数在python中非常容易,您只需要声明类名。函数名 以下是一个示例:

class A(object):
   def funct1(self):
      pass
   def funct2(self):
      pass

class B(object):
   def funct1(self):
      pass
B.funct1()

Classname.functionNameObject

我希望我理解了你的问题。听起来你好像想从B.func1调用A.func1。这个问题的问题是类A没有关于B的信息,除非您使用继承

您可以利用继承,但是另一个解决方案是让B.func1接受A的实例作为参数

举一个这种交互的例子,想想会计是如何与发票交互的。发票并没有从会计那里继承任何东西,同样的事情反过来也一样。会计需要做的就是拿到发票并激活付款方式


会计类不需要知道任何关于Invoice类的信息,除了它有一个采用payment\u方法的Pay方法。发票类不在乎谁支付,只要有人支付。

你说的链接是什么意思?你是说继承吗?类似继承的东西,是的。但在这种情况下,我不太确定,因为我不清楚哪一个会是父母。我所说的链接是指,在我的游戏中,我计划让故事情节从一个移动到另一个。B类中def funct1中的选项将导致A类中的def funct2。
class A(object):
   def funct1(self):
      pass
   def funct2(self):
      pass

class B(object):
   def funct1(self):
      pass
B.funct1()
class Invoice():
    amount_due = 100

    def pay(self, payment_method):
        pass

class Accountant():
    def pay_invoice(self, invoice, payment_method):
        if invoice.amount_due > 0:
                invoice.pay(payment_method)