python class :当我调用 class 方法时,它总是在结果中输出 "None"

python class : when I call the class methods, it always output a "None" within the result

我正在编写一个代码来记录员工系统,class 可以打印全名,电子邮件:

class Employee:

    def __init__(self,first,last):
        self.first=first
        self.last=last
        
    def fullname(self):
        print('{} {}'.format(self.first,self.last))
    def email(self):
        print('{}.{}@email.com'.format(self.first,self.last))

emp_1=Employee('John','Smith')
emp_1.first='Jim'

print(emp_1.first)
print(emp_1.email())
print(emp_1.fullname())

输出是这样的:

我不明白为什么当我调用方法(email()fullname())时,我在输出中有一个None

输出为:

Jim
Jim.Smith@email.com
None
Jim
Smith
None

您正在 print 函数中使用方法调用。所以它将尝试打印从方法中 returned 的值。由于您没有从该方法中 returning 任何内容,因此它会打印 None.

您始终可以 return 值而不是将它们打印在里面。例子.

class Employee:

    def __init__(self, first, last):
        self.first = first
        self.last = last

    def fullname(self):
        # just printing the name will not return the value.
        return '{} {}'.format(self.first, self.last)

    def email(self):
        # same, use a return statement to return the value.
        return '{}.{}@email.com'.format(self.first, self.last)


emp_1 = Employee('John', 'Smith')
emp_1.first = 'Jim'

print(emp_1.first)
print(emp_1.email())  # print what is returned by the method.
print(emp_1.fullname())

它会给出像

这样的正确输出
Jim
Jim.Smith@email.com
Jim Smith