在类中使用实例方法时是否有“正确”的方法来调用辅助函数? calc_age 和 calc_age_v2 两个函数都可以工作,有首选方法吗?这是一个玩具示例,真正的代码具有更复杂的功能。
#%%
def calc_age(self):
age=2024-self.dob
return(age)
def calc_age_v2(self):
self.age=2024-self.dob
return(self)
class Person:
def __init__(self, name, dob,age):
self.name = name
self.dob = dob
self.age=age
def myfunc(self):
print("Hello my name is " + self.name)
def calc_age(self):
self.age=calc_age(self)
def calc_age_v2(self):
self=calc_age_v2(self)
p1 = Person(name="John",dob=2002,age=None)
# p1.calc_age()
p1.calc_age_v2()
print(p1.age)
当您修改属性时,没有理由从
calc_age_v2
函数返回某些内容(而且我认为返回相同的类实例不是一个好主意)
# Use person instead of self for better understanding
def calc_age_v2(person):
person.age = 2024 - person.dob
class Person:
def __init__(self, name, dob,age):
self.name = name
self.dob = dob
self.age=age
def myfunc(self):
print("Hello my name is " + self.name)
def calc_age(self):
self.age=calc_age(self)
def calc_age_v2(self):
calc_age_v2(self)