[英]calling a class function python
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。 我已经尝试了很多东西,到目前为止没有任何效果。 我是不是离这儿很远了,还是有什么蠢事。
错误不是没有set_item
; 该错误是由您尚未初始化的事实引起的,因此所需的位置参数self
未隐式传递。
调用函数类实例时,它们成为该实例上的绑定方法,并且该实例始终(除非经过修饰)作为第一个参数隐式传递。
简而言之,初始化一个机械化实例,然后调用函数,即:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.