在类中调用辅助函数的正确方法

问题描述 投票:0回答:1

在类中使用实例方法时是否有“正确”的方法来调用辅助函数? calc_agecalc_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)
python class arguments self instance-methods
1个回答
0
投票

当您修改属性时,没有理由从

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)
© www.soinside.com 2019 - 2024. All rights reserved.