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++更友好