python中使用函数参数访问类的方法

2024-04-25 21:30:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中有这样一个类:

class xyz:
    def abc():
          #Do Something
            def add(x,y):
                  #Add x and y
            def sub(x,y):
                  #Subtract y from x
            def mul(x,y):
                  #multiply x ynd y

注意:这里的“add”、“sub”和“mul”是嵌套方法。你知道吗

  1. 允许这样上课吗?你知道吗
  2. 如果允许,那么我想通过函数参数访问“add”、“sub”和“mul”方法。例如:

    from xyz import xyz
    def jkl(input):
           abc.(input)  # By doing this it will raise syntax error. This is just for refernece.
    

所以,当我调用jkl(add(2,3))时,它应该添加数字。类似地,当我调用jkl(sub(4,3))时,它应该减去数字。你知道吗

能做到吗?你知道吗


Tags: and方法fromaddinputdef数字jkl
1条回答
网友
1楼 · 发布于 2024-04-25 21:30:46

很难理解你的目标到底是什么。你知道吗

编辑:我将在这里留下这个答案,因为它已经收到了投票,但OP澄清说,他们实际上是在问如何重载运算符。你知道吗

您可以这样做:

class abc():
      //Do Something
      @staticmethod
      def add(x,y):
              # Add x and y
      @staticmethod
      def sub(x,y):
              # Subtract y from x
      @staticmethod
      def mul(x,y):
              # multiply x ynd y

abc.add(1,1)

如果要在另一个模块中使用类,可以将该类定义放在文件xyz.py中,然后放在另一个文件(同一目录中)中:

from xyz import abc

abc.add(1,1)

然而,这在Python世界中是一件非常奇怪的事情。我建议你用不同的方式组织事情,除非你有很好的理由这样做。更好的方法是完全跳过类定义,在abc.py中这样做:

def add(x,y):
          # Add x and y
def sub(x,y):
          # Subtract y from x
def mul(x,y):
          # multiply x ynd y

然后从该模块导入:

import abc

abc.add(1,1)
etc...

或者,您可以这样做:

from abc import add, sub, mul

add(1,1)
etc...

相关问题 更多 >