繁体   English   中英

AttributeError: 'int' 对象没有属性 'weight'

[英]AttributeError: 'int' object has no attribute 'weight'

我在一个文件夹中有两个文件,它们是在此处输入图片说明

“converters.py”是一个模块,而“app.py”是一个测试它的python文件

以下是“converters.py 模块”中的内容:

class KgLbs:
def __init__(self, weight):
    self.weight = weight

def lbs_to_kg(self):
    return self.weight * 0.45

def kg_to_lbs(self):
    return self.weight / 0.45

以下是“app.py”脚本中的内容:

from converters import KgLbs as kglbs

weight = int(input("Weight: "))
weight = kglbs.kg_to_lbs(weight)
print(weight)

这就是当我输入一个整数时它给我的错误:

Weight: 52
Traceback (most recent call last):
  File "app.py", line 4, in <module>
    weight = kglbs.kg_to_lbs(weight)
  File "C:\Users\Cyntexia\PycharmProject\Test\converters.py", line 8, in kg_to_lbs
    return self.weight / 0.45
AttributeError: 'int' object has no attribute 'weight'

我想要做的就是输入一个简单的整数,然后将其转换为我希望的重量,尽管这个错误以我该死的方式出现

按照您设计类的方式,您必须以这种方式使用它:

weight = KgLbs(weight).kg_to_lbs()

要使用您的方式,您需要将您的方法定义为@classmethods并将weight作为参数传递给它们(此处不需要__init__ ):

class KgLbs:
  @staticmethod
  def lbs_to_kg(weight):
      return weight * 0.45

  @staticmethod
  def kg_to_lbs(weight):
      return weight / 0.45

weight = int(input("Weight: "))
weight = KgLbs.kg_to_lbs(weight)
print(weight)

您尚未初始化对象的权重。 它应该像

from converters import KgLbs as kglbs

weight = int(input("Weight: "))
obj = kglbs(weight)
print(obj.kg_to_lbs())

Python 是一种强类型语言,您要为weight变量分配一个int类型的值。 为什么你认为这个int值应该表现得像一个KgLbs

改用这个:

from converters import KgLbs as kglbs

weight = kglbs(int(input("Weight: ")))
weight = weight.kg_to_lbs()
print(weight)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM