Python 将函数返回指定为另一个函数参数

Python 将函数返回指定为另一个函数参数,python,class,Python,Class,下面是这个类和这些函数。是否有方法将新_编号中的返回值分配给初始构造函数中的参数编号 class girl(person): def __init__(self, number, interest): self.number = number self.interest = interest super().__init__() def new_number(self): n = '0000000000'

下面是这个类和这些函数。是否有方法将新_编号中的返回值分配给初始构造函数中的参数编号

class girl(person):
    def __init__(self, number, interest):
        self.number = number
        self.interest = interest
        super().__init__()
    def new_number(self):
        n = '0000000000'
        while '9' in n[3:6] or n[3:6]=='000' or n[6]==n[7]==n[8]==n[9]:
            n = str(random.randint(10**9, 10**10-1))
        return n[:3] + '-' + n[3:6] + '-' + n[6:]

如果您总是要将其分配给
self.number
,那么甚至不要将其作为参数接受。只需调用并分配它:

class girl(person):
    def __init__(self, interest):
        self.number = self.new_number()
        self.interest = interest
        super().__init__()

    def new_number(self):
        n = '0000000000'
        while '9' in n[3:6] or n[3:6]=='000' or n[6]==n[7]==n[8]==n[9]:
            n = str(random.randint(10**9, 10**10-1))
        return n[:3] + '-' + n[3:6] + '-' + n[6:]

请注意,
new\u number
可以移动到类外,因为它与类无关,也可以将其设置为静态。

您可以只分配
self.number
的编号:

class girl(person):
    def __init__(self, number, interest):
        self.number = number
        self.interest = interest
        super().__init__()
    def new_number(self):
        n = '0000000000'
        while '9' in n[3:6] or n[3:6]=='000' or n[6]==n[7]==n[8]==n[9]:
            n = str(random.randint(10**9, 10**10-1))
    self.number = n[:3] + '-' + n[3:6] + '-' + n[6:]   # Assign it here
请注意,在python中,变量
self
代表对象本身,因此可以在类函数中直接对其进行操作


您可以像这样进行赋值或初始化。self.propertyA=someCalculation()

试试这个,它应该可以工作了。您不需要传递number,因为您将调用新的\u number方法

class Girl():
    def __init__(self, interest=0):
        self.number = self.new_number()
        self.interest = interest
        super().__init__()
    def new_number(self):
        n = '0000000000'
        while '9' in n[3:6] or n[3:6]=='000' or n[6]==n[7]==n[8]==n[9]:
            n = str(random.randint(10**9, 10**10-1))
        num_from_new_number = n[:3] + '-' + n[3:6] + '-' + n[6:]
        return num_from_new_number

new_number
函数必须在
Girl
类中吗?呃,是的,有-通过调用它。所以不要将它用作参数,只需在需要时调用它。明白了!在Python中,哇类比C++更友好