【发布时间】:2017-06-28 02:30:35
【问题描述】:
class Person(object):
def __init__(self, age):
self.age = age
self.ageGroup = ageGroup
def findAgeGroup(self):
if age >= 80:
ageGroup= "old"
print ageGroup
John= Person(95)
John.findAgeGroup
所以我的问题可能是一个非常简单的问题。在__init__ 方法的上述代码中,当实例化Person 类的新实例时设置变量self.age? __init__ 方法中的所有其他变量都放在那里,因为它们与 self.age 相关?例如,在findAgeGroup 方法中,age 用于派生ageGroup. 的值因此,您在__init__ 方法中列出self.ageGroup 的唯一时间是如果您计划从self.age 派生值在创建类的新实例时调用?
【问题讨论】:
-
你需要使用
if self.age >= 80:(和self.ageGroup = "old"等)。 -
1.听起来您需要继续查看 Python OOP 教程。 2. 这段代码会产生一个
NameError。 -
另请注意,在未定义的
self.ageGroup = ageGroupageGroup 和John.findAgeGroup中,您可能是指John.findAgeGroup() -
@Nullman 我想你刚刚回答了我的问题。所以
self.ageGroup根本不应该在__init__方法中?因为在创建person的新实例时没有定义它? -
我投票决定将此问题作为离题结束,因为 SO 不是教程服务。