Случайный в python 2.5, не работающем?

Существует также один уродливый, но рабочий путь. Декомпилируйте FirebaseMessagingService.class и измените его поведение. Затем просто поместите класс в нужный пакет в приложении yout, а dex используйте его вместо класса в самой папке сообщений. Это довольно просто и работает.

Существует метод:

private void zzo(Intent intent) {
    Bundle bundle = intent.getExtras();
    bundle.remove("android.support.content.wakelockid");
    if (zza.zzac(bundle)) {  // true if msg is notification sent from FirebaseConsole
        if (!zza.zzdc((Context)this)) { // true if app is on foreground
            zza.zzer((Context)this).zzas(bundle); // create notification
            return;
        }
        // parse notification data to allow use it in onMessageReceived whe app is on foreground
        if (FirebaseMessagingService.zzav(bundle)) {
            zzb.zzo((Context)this, intent);
        }
    }
    this.onMessageReceived(new RemoteMessage(bundle));
}

Этот код из версии 9.4.0, метод будет иметь разные имена в другой версии из-за обфускации.

8
задан dusan 3 April 2013 в 07:19
поделиться

8 ответов

У Вас, вероятно, есть файл, названный random.py или random.pyc в Вашем рабочем каталоге. Это - затенение встроенный случайный модуль. Необходимо переименовать random.py к чему-то как my_random.py и/или удалить random.pyc файл.

Для сообщения наверняка, что продолжается сделайте это:

>>> import random
>>> print random.__file__

Это покажет Вам точно, какой файл импортируется.

35
ответ дан 3 November 2019 в 12:28
поделиться

Это происходит, потому что у Вас есть random.py файл в пути поиска Python, скорее всего, текущий каталог.

Python ищет модули с помощью sys.path, который обычно включает текущий каталог перед стандартными пакетами сайта, который содержит ожидаемый random.py.

Это, как ожидают, будет зафиксировано в Python 3.0, так, чтобы Вы не могли импортировать модули из текущего каталога, не используя специальный синтаксис импорта.

Просто удалите random.py + random.pyc в каталоге, от которого Вы запускаете Python, и он будет хорошо работать.

3
ответ дан 3 November 2019 в 12:28
поделиться

Я думаю, что необходимо дать еще некоторую информацию. Не действительно возможно ответить, почему это не работает на основе информации в вопросе. Основная документация для случайного в: https://docs.python.org/library/random.html

Вы могли бы проверить там.

2
ответ дан 3 November 2019 в 12:28
поделиться

Если бы скрипт, который Вы пытаетесь запустить, самостоятельно называют random.py, то у Вас был бы конфликт имен. Выберите другое имя для своего сценария.

1
ответ дан 3 November 2019 в 12:28
поделиться

Можно ли отправить пример того, что Вы пытаетесь сделать? Не ясно из Вашего вопроса, какова фактическая проблема.

Вот пример того, как использовать случайный модуль:

import random
print random.randint(0,10)
0
ответ дан 3 November 2019 в 12:28
поделиться
Python 2.5.2 (r252:60911, Jun 16 2008, 18:27:58)
[GCC 3.3.4 (pre 3.3.5 20040809)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> random.seed()
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_BuiltinMethodType', '_MethodType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '_acos', '_ceil', '_cos', '_e', '_exp', '_hexlify', '_inst', '_log', '_pi', '_random', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>> random.randint(0,3)
3
>>> random.randint(0,3)
1
>>>  
1
ответ дан 3 November 2019 в 12:28
поделиться

Кажется, хорошо работает для меня. Проверьте методы в официальной документации Python для случайного:

>>> import random
>>> random.random()
0.69130806168332215
>>> random.uniform(1, 10)
8.8384170917436293
>>> random.randint(1, 10)
4
0
ответ дан 3 November 2019 в 12:28
поделиться

Работы для меня:

Python 2.5.1 (r251:54863, Jun 15 2008, 18:24:51) 
[GCC 4.3.0 20080428 (Red Hat 4.3.0-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> brothers = ['larry', 'curly', 'moe']
>>> random.choice(brothers)
'moe'
>>> random.choice(brothers)
'curly'
0
ответ дан 3 November 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: