python-3.x - 如何将字典值传递给不同类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
解决方案
#第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()
请提出一个更好的方法来做到这一点。
推荐阅读
- sql - 如何过滤重复项并消除出现在字符串之后的整数值
- javascript - 如何根据id对数组进行排序
- python - 不断收到类型错误:+ 的不支持的操作数类型:python 中的“int”和“str”
- python - 是否在中间件安全中通过 set_urlconf 和 request.urlconf 修改 Django urlconf?
- google-cloud-speech - 使用谷歌 STT,使用流媒体,想要接收输入 1 分钟
- r - 在 R 中的循环内创建向量
- mysql - 如何在一列中显示最大值和最小值
- python - 如果我不使用内置的打印功能,有没有办法在 python 中打印彩色文本?
- python - python - 如何从python中上升尾的频谱中减去基线?
- elasticsearch - 在弹性搜索中排序时_doc的值来自哪里