python - 返回具有多个输入参数的函数的值以在同一类中具有多个参数的另一个函数中使用?
问题描述
现在我知道有很多重复的人在问类似的问题[1] [2] [3] [4] [5],但是我相信他们都没有在同一个类中具有多个参数的另一个函数中调用具有多个输入参数的函数; 这恰好是我的特殊问题(除非我在搜索过程中错过了它)。
下面是一个最小的工作示例,我试图在 function2 中使用 function1 的结果:
class Something():
def __init__(self,input1, input2, input3):
self.input1 = input1
self.input2 = input2
self.input3 = input3
def function1(self, input4, input5, input6):
something = (self.input1 + self.input2 + self.input3)+input4+input5+input6
return something
def function2(self, input7, input8):
something2 = self.function1(self.input4, self.input5, self.input6)+input7+input8
return something2
a = Something(1,2,3)
print(a.function1(4,5,6))
print(a.function2(7, 8))
Function1 打印正常,但是当我调用 Function2 时,出现错误:
AttributeError: 'Something' object has no attribute 'input4'
我可能在这里遗漏了一个简单的步骤,但是我似乎无法弄清楚如何在 function2 中使用 function1 的结果,而无需再次重新定义所有输入参数。
解决方案
input4
是一个范围是本地的参数function1
。这同样适用于input5
和input6
。您需要使用self
in分配它们__init__
,以便使用self
实例的类方法可以访问它们。如果您希望这些变量可以访问而无需在参数列表中重新定义它们,您可以self
使用function1
class Something():
def __init__(self,input1, input2, input3):
self.input1 = input1
self.input2 = input2
self.input3 = input3
def function1(self, input4, input5, input6):
self.input4 = input4
self.input5 = input5
self.input6 = input6
something = (self.input1 + self.input2 + self.input3)+input4+input5+input6
return something
def function2(self, input7, input8):
something2 = self.function1(self.input4, self.input5, self.input6)+input7+input8
return something2
a = Something(1,2,3)
print(a.function1(4,5,6))
print(a.function2(7, 8))
# 21
# 36
推荐阅读
- dialogflow-es - 如何将实体和训练实例批量上传到对话流?
- azure - 通过 URL 列出 Azure 存储容器中的 Blob
- xml - 合并具有相同值的多个属性节点
- html - 如何在移动设备中垂直对齐 div 标签并在 CSS 中的大屏幕上水平对齐?
- java - 无法禁用远程 Spring Boot JMX 访问
- deployment - 如何将多个逻辑应用复制和部署到不同的 RG
- android - 迁移到 androidx 后无法运行应用
- wordpress - Docker 上的 Wordpress 安装。试图跳过安装页面
- git - Azure 管道不允许 git push 抛出 'GenericContribute' 权限是必需的
- java - 如何查看java程序的运行时间?