Уведомления

Группа в Telegram: @pythonsu

#1 Июль 27, 2019 19:43:01

Skilur
Зарегистрирован: 2015-03-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

одинаковое значение переменной для всех функций

Приветствую,

подскажите пожалуйста как быть:

Есть функция, к примеру:

def tel():
number = str(random.randint(10000000, 99999999))
return results
В ней генерим, к примеру число, которое потом возвращаем return results

далее в другой функции получаем значение results :
func1():
print(tel())

потом тоже самое, но в другой функции
func2():
print(tel())

соответственно числа в func1() и func2() будут разные, так как при каждом вызове функции tel() число будет генерироваться каждый раз заново.

Как мне поступить, так что бы для func1() и func2() значение переменной number было одно и тоже?

Заранее спасибо

Отредактировано Skilur (Июль 27, 2019 20:43:32)

Офлайн

#2 Июль 27, 2019 20:09:14

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

одинаковое значение переменной для всех функций

как вариант создать класс примерно такой :

 import random
class tel:
    telnum = 0
    def __init__(self):
        pass
    
    @staticmethod
    def tel_1(update = False):
        if update: tel.telnum = str(random.randint(10000000, 99999999)) 
        return tel.telnum
    
    @staticmethod
    def tel_2(update = False):
        if update: tel.telnum = str(random.randint(10000000, 99999999)) 
        return tel.telnum
        
print(tel.tel_1(True) , 'update telnum')
print(tel.tel_2() , 'not update telnum')
print(tel.tel_1(False) , 'not update telnum')
print(tel.tel_2(True) , 'update telnum')
результат:
13316907 update telnum
13316907 not update telnum
13316907 not update telnum
27592331 update telnum

и на будущее код надо выкладывать под теги что-бы было читабельно как я вам написал
 [code][/code]

и какая-то странная задача у вас, сдается мне вы нашли не самое лучшее ее решение



Офлайн

#3 Июль 27, 2019 22:30:56

ZiG
Зарегистрирован: 2018-12-16
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

одинаковое значение переменной для всех функций

Я конечно новичок. Но незя ли:

 def tel():
   number =  str(random.randint(10000000, 99999999))
   return results 
a = tel()
func1(a):
   print(a)
func2(a):
   print(a)

Офлайн

#4 Июль 27, 2019 22:41:42

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

одинаковое значение переменной для всех функций

можно и так, но лучше сразу привыкать к ООП, так сэкономишь кучу времени на обучении, а судя по вопросу человек еще учится, из этих соображений я и скинул код сразу с декораторами, но в целом любая реализация состоящая из условия на обновление и переменной для хранения значения подойдет.



Отредактировано @cckyi_boxxx (Июль 27, 2019 22:44:43)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version