class merchandise:
def __init__(self, item, quantity, cost):
self.__item = item
self.__quantity = quantity
self.__cost = cost
def set_item(self, item):
self.__item = item
def set_quantity(self, quantity):
self.__quantity = quantity
def set_cost(self, cost):
self.__cost = cost
def get_item(self):
return self.__item
def get_quantity(self):
return self.__quantity
def get_cost(self):
return self.__cost
def get_inventory_value(self):
return (format(self.__quantity * self.__cost, '.2f'))
def __str__(self):
for i in merchandise:
print (self.__item+',', self.__quantity,'@ $'+(format (self.__cost,'.2f')))
import merchandise
def main(_):
def make_list():
for count in range (1,3):
merchandise.set_item("hammer")
merchandise.set_quantity(10)
merchandise.set_cost(14.95)
print(hammer)
hardware = float (input ('Enter a new quantity for hardware '))
jewelry = float (input ('Enter a new cost for jewelry '))
hammer = merchandise.merchandise()
stuff = make_list()
print (stuff)
main()
我不知道我做错了什么我到达那里错误商品中没有set_item。我已经尝试了很多东西,到目前为止还没有任何工作。我离开这里还是愚蠢的。
答案 0 :(得分:0)
错误不是没有set_item
;错误是由于您尚未初始化而导致所需的位置参数self
未被隐式传递。
当调用函数类实例时,它们成为该实例上的绑定方法,并且实例总是(除非是修饰)隐式传递为第一个参数。
简而言之,初始化一个mechanize实例,然后调用这些函数,即:
m = merchandise('', 10, 0.0)
m.set_item("hammer")
m.set_quantity(10)
m.set_cost(14.95)
请注意,不需要设置,您可以在初始化期间提供这些设置:
m = merchandise('hammer', 10, 14.95)
此外,您无法导入您定义的模块(如果这是您正在做的事情),它会正常引发错误。如果它在不同的模块中,请确保您也导入实际的类:
from merchandise import merchandise