提问人:ManishVangara 提问时间:2/15/2023 最后编辑:Bas HManishVangara 更新时间:2/15/2023 访问量:18
当我在 python 类中的另一个方法中调用方法时,如何访问实际输出而不是位置索引
How can I access actual output instead of location index when I call methods in another method in a python class
问:
def get_all_values(self):
values_list = [self.get_input_cable, self.get_output_cable, self.get_color, self.get_price]
return values_list
这是我将方法调出到列表中并打印出来时的输出。
\[\<bound method Charger.get_input_cable of \<__main__.Charger object at 0x1030b4e10\>\>, \<bound method Charger.get_output_cable of \<__main__.Charger object at 0x1030b4e10\>\>, \<bound method Charger.get_color of \<__main__.Charger object at 0x1030b4e10\>\>, 600\]
我尝试了以下代码:
class Charger(object):
def __init__(self, input_cable, output_cable, color=None):
self.input_cable = input_cable
self.output_cable = output_cable
self.color = color
self.price = 0
def __str__(self):
return "Input: " + str(self.input_cable) + "\nOutput: " + str(self.output_cable) + "\nColor: " + str(self.color)
# Getters
def get_input_cable(self):
return self.input_cable
def get_output_cable(self):
return self.output_cable
def get_color(self):
return self.color
def get_price(self):
return self.price
# Setters
def set_input_cable(self, input_cable):
self.input_cable = input_cable
def set_output_cable(self, output_cable):
self.output_cable = output_cable
def set_color(self, color):
self.color = color
def set_price(self, price):
self.price = price
# Behaviours (Methods)
def sale(self,discount=0):
sale_price = self.price - self.price * discount/100
return sale_price
def get_all_values(self):
values_list = [self.get_input_cable, self.get_output_cable, self.get_color, self.get_price]
return values_list
C1 = Charger("C type", "B type", "Black")
C2 = Charger("USB", "C type", "White")
C1.set_price(600)
C2.set_price(1300)
print(C1.get_price())
print(C2.get_price())
print(C1.get_all_values())
答:
0赞
Vaibhav
2/15/2023
#1
如果要访问在 Python 类中另一个方法中调用的方法的实际输出值,可以将输出值存储在方法内的变量中并返回它,也可以直接在调用方法的 return 语句中返回方法调用的输出值。
例如,如果有一个方法 method1 调用另一个方法 method2,则可以执行以下任一操作:
类 MyClass: def 方法 1(self): 结果 = self.method2() # 用结果做点什么 返回结果
def method2(self):
# do some computation
return output_value
或者您可以简单地执行以下操作:
类 MyClass: def 方法 1(self): 结果 = self.method2() # 用结果做点什么 返回结果
def method2(self):
# do some computation
return output_value
在这两种情况下,output_value 都是 method2 的实际输出。
评论
1赞
jsbueno
2/15/2023
除了解释如何使用另一个类从零开始操作之外,还应该指出问题代码中的错误所在。
评论
()
values_list = [self.get_input_cable(), self.get_output_cable(), self.get_color(), self.get_price()]