如何使 def 语句 return 成为 self(...) 中的对象
How to make def statement return an object within a self(...)
class Items():
def Bucket(self):
self.cost(5)
print(Items.Bucket()) # I want this to return the cost of the item
我想要打印所列项目的成本。在这种情况下,我想要一个桶 return 5。现在它 returns...
TypeError: Bucket() missing 1 required positional argument: 'self'
有什么建议吗?
试试这个:
class Items():
def __init__(self,cost):
self.cost = cost
def bucket(self):
return self.cost
items = Items(5)
print(items.bucket())
您收到此错误的原因是因为您的 Bucket
方法被定义为 实例 方法,而您正试图将其作为 class方法。
我建议您阅读 this 此处了解 class 方法和实例方法之间的区别。这也将解释 self 如何在这里发挥作用。
要创建 Items
的实例,您需要 调用 它:
items_obj = Items()
现在,您拥有 Items
class 的实例,现在可以正确调用您的方法 Bucket
:
items_obj.Bucket()
您似乎已经在 Bucket
方法中调用了一个名为 cost
的方法。因此,假设此方法只是 return 的成本,那么只需 return 在您的 Bucket
方法中调用 self.cost(5)
:
def Bucket(self):
return self.cost(5)
所以,你应该有一个最终的解决方案:
class Items:
def Bucket(self):
return self.cost(5)
items_obj = Items()
print(items_obj.Bucket())
注意:定义 class 时不需要 ()
。假设您正在使用 Python 3,您可以将 class 定义为: class Items:
如上所述。
此外,最好在代码中遵循良好的风格实践,方法是查看此处的风格指南:https://www.python.org/dev/peps/pep-0008/
class Items():
def Bucket(self):
self.cost(5)
print(Items.Bucket()) # I want this to return the cost of the item
我想要打印所列项目的成本。在这种情况下,我想要一个桶 return 5。现在它 returns...
TypeError: Bucket() missing 1 required positional argument: 'self'
有什么建议吗?
试试这个:
class Items():
def __init__(self,cost):
self.cost = cost
def bucket(self):
return self.cost
items = Items(5)
print(items.bucket())
您收到此错误的原因是因为您的 Bucket
方法被定义为 实例 方法,而您正试图将其作为 class方法。
我建议您阅读 this 此处了解 class 方法和实例方法之间的区别。这也将解释 self 如何在这里发挥作用。
要创建 Items
的实例,您需要 调用 它:
items_obj = Items()
现在,您拥有 Items
class 的实例,现在可以正确调用您的方法 Bucket
:
items_obj.Bucket()
您似乎已经在 Bucket
方法中调用了一个名为 cost
的方法。因此,假设此方法只是 return 的成本,那么只需 return 在您的 Bucket
方法中调用 self.cost(5)
:
def Bucket(self):
return self.cost(5)
所以,你应该有一个最终的解决方案:
class Items:
def Bucket(self):
return self.cost(5)
items_obj = Items()
print(items_obj.Bucket())
注意:定义 class 时不需要 ()
。假设您正在使用 Python 3,您可以将 class 定义为: class Items:
如上所述。
此外,最好在代码中遵循良好的风格实践,方法是查看此处的风格指南:https://www.python.org/dev/peps/pep-0008/