这是重复项,但是都不能解决我的问题。我正在尝试制作一个名为apply_age
的函数,它将在您上课的年龄上增加一年,但出现错误
TypeError:只能将str(而不是“ int”)连接到str。
我尝试过self.age = int(self.age + 1) and self.age = (self.age + int(1))
,但仍然遇到相同的错误。
class person: # creates class called person
def __init__(self, name, age):
self.name = name # defines name
self.age = age # defines age
def name_age(self): # creates function called name_age
return "{} {}".format(self.name, self.age) # returns name and age
def apply_age(self):
self.age = self.age + 1
person_1 = person("Nathaniel Gamester", "14")
person_2 = person("Aidan Gamester", "19")
print(person_1.name_age())
person_1.apply_age()
print(person_1.name_age())
我希望输出再次显示我的名字和新年龄,但这只是给我上面的错误。
答案 0 :(得分:1)
您的年龄是字符串! 这就是为什么TypeError。您不能添加字符串和整数。
去
person_1 = person("Nathaniel Gamester", 14)
person_2 = person("Aidan Gamester", 19)
具有年龄年龄
答案 1 :(得分:0)
确保您的年龄是正确的数据类型;
def __init__(self, name, age):
self.name = name # defines name
self.age = int(age) # defines age
答案 2 :(得分:0)
代码验证:
class person: # creates class called person
def __init__(self, name, age):
self.name = name # defines name
self.age = age # defines age
def name_age(self): # creates function called name_age
return "{} {}".format(self.name, self.age) # returns name and age
def apply_age(self):
self.age = self.age + 1
person_1 = person("Nathaniel Gamester", 14)
person_2 = person("Aidan Gamester", 19)
print(person_1.name_age())
person_1.apply_age()
print(person_1.name_age())
错误原因:您正在传递包含整数而不是整数的字符串。由于python是弱类型语言,因此变量根据数据获得数据类型。您通过的年龄在""
内部,因此编译器将其解释为字符串。要使其整数,只需除去引号即可。
答案 3 :(得分:-1)
您的self.age是str。您需要执行类似self.age = str(int(self.age)+1)的操作