我已经获得了这个课程以及以下这些功能。有没有办法将new_number中的返回值分配给初始girl构造函数中的参数号?
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:]
答案 0 :(得分:5)
如果您总是要将其分配给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_number
可以移出类,因为它与它无关,或者它可以是静态的。
答案 1 :(得分:1)
试试这个应该有效。因为你打算调用new_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
答案 2 :(得分:0)
您可以只指定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()