簡體   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