首页 > 解决方案 > 如何将字典值传递给不同类python中的算术函数

问题描述

我正在尝试将字典值传递给简单的算术函数。我正在使用 3 个类。ClassA 定义了 add() sub() mul() div() 函数。B 类仅包含用于操作的值。c 类有一些检查。ClassA 看起来像这些。

class ClassA(object):

    def addition(self, x, y):
        return x + y

    def substraction(self, x, y):
        return x - y

    def division(self, x,y):
        return x / y

    def multiplication(self, x, y):
        return x * y

B 类看起来像这样。

类 ClassB(对象):

def __init__(self):
    self.var1 = 2
    self.var2 = 8

这是ClassC

from File1 import ClassA
from File2 import ClassB

class ClassC(ClassB):

    def __init__(self,ClassB):
        self.var3= ClassB.var1
        self.var4= ClassB.var2
        print(self.var3)#testing
        print(self.var4)#testing

    def checkWholeNumber(self):
        if self.var3%2 ==0 or (self.var3+1)%2 & self.var4%2 == 0 or (self.var4+1)%2:
            print(self.var3) #if value is whole then it will print some value or will throw exception

            return True
        return False
    def addDictAndAss(self):
        myDict={}
        myDict["x"]=self.var3
        myDict["y"]=self.var4
        print(myDict) #to check whether values are added or not
object1 = ClassB()
object2 = ClassC(object1)
object2.checkWholeNumber()
object2.addDictAndAss()
object3= ClassA()
object3.addition(*myDict)

现在我想将我创建的字典分配给 classA 的函数。提前致谢。Edit1:File1.py 包含 ClassA ,File2.py 包含 ClassB, File3.py 包含 ClassC

标签: python-3.xdictionaryooppython-class

解决方案


#第1步:

 class ClassA(object):

    def addition(x, y):
        X=x
        Y=y
        return X + Y
def substraction(x, y):
    X = x
    Y = y
    return X - Y

def division(x, y):
    X = x
    Y = y
    return X / Y

def multiplication(x, y):
    X = x
    Y = y
    return X * Y



   #step2:
class ClassB(object):
    def __init__(self):
        self.var1 = 10
        self.var2 = 8



 #Step3:
    from File1 import ClassA
    from File2 import ClassB
    
    class ClassC(ClassB):
    
        def __init__(self,ClassB):
            self.var3= ClassB.var1
            self.var4= ClassB.var2
            #print(self.var3)#testing
            #print(self.var4)#testing
    
        def checkWholeNumber(self):
            if self.var3%2 ==0 or (self.var3+1)%2 & self.var4%2 == 0 or (self.var4+1)%2:
               # print(self.var3) #if value is whole then it will print some value or will throw exception
                return True
            return False
        def addDictAndAss(self):
            myDict={}
            myDict["x"]=self.var3
            myDict["y"]=self.var4
            #print(myDict) #to check whether values are added or not
            print("Please select one arithmatic operator i.e. '+','-','/','*'")
            operator=input()
            if operator == '+':
                add=ClassA.addition(**myDict)
                print(add)
            elif operator == '-':
                sub=ClassA.substraction(**myDict)
                print(sub)
            elif operator == '/':
                div=ClassA.division(**myDict)
                print(div)
            elif operator == '*':
                mul=ClassA.multiplication(**myDict)
                print(mul)
    
    # Creating object and calling(assiging)
    object1 = ClassB()
    object2 = ClassC(object1)
    object2.checkWholeNumber()
    object2.addDictAndAss()
    object3= ClassA()

请提出一个更好的方法来做到这一点。


推荐阅读