Python: 加一的方法returns None

Python: Method to increment by one returns None

由于缺乏经验,我找不到代码中的错误。我定义了两个方法,当我调用它们时都定义了 return None 。这是我的代码:

class User:
def __init__(self, fname, lname, age):
    self.fname = fname
    self.lname = lname
    self.age = age
    self.login_attempts = 0

def describe_user(self):
    print("The user's name is {} {} and he or she is {} old".format(self.fname, self.lname, self.age))

def greet_user(self):
    print(f"Hello {self.fname}!")

def increment_login_attempts(self):
    self.login_attempts += 1

def reset_login_attempts(self):
    self.login_attempts = 0


user1 = User("Rita", "Jones", 19)
user1.describe_user()
user1.greet_user()
print("")
user2 = User("Ben", "Holmes", 26)
user2.describe_user()
user2.greet_user()
print(user2.increment_login_attempts())
print(user2.increment_login_attempts())
print(user2.increment_login_attempts())
print(user2.reset_login_attempts())

最后四张打印None

任何不以显式 return 语句结束(或以显式普通 returnreturn None 结束)的方法或函数 returns None 默认情况下。如果你想 return 新值,只需添加:

return self.login_attempts

视情况而定。

函数 的作用 与函数 returns 的作用是有区别的。 在你的例子中, increment_login_attempts 方法做了一件事。它将 login_attempts 属性增加 1。但它不会 return 任何东西。 如果你想让它成为 return 一个值,你必须像这样使用 return 关键字:

return self.login_attempts

这就是函数 做的事情 和它 returns.

的区别