Python *.py, *.pyo, *.pyc: Который может быть устранен для Встроенной системы?

Хорошо, я знал, где ваша проблема с кодом
, в этой строке fdata.setSlot1(ds.child("CheckAvailability").getValue(Fdata.class).getSlot1());
есть две ошибки:

  • вы ссылаетесь на «CheckAvailability» дочерний, в то время как вы должны ссылаться на дочерний элемент внутри него, как «Slot1», потому что вы ссылаетесь на «CheckAvailability» ранее в mdatabaseReference.

  • Вы используете метод getValue () с данными неверного типа (Fdata.class), вместо этого следует использовать (String.class).

Решение:

mdatabaseReference= FirebaseDatabase.getInstance().getReference("CheckAvailability");
mdatabaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        String s1,s2,s3,s4;

            s1 = dataSnapshot.child("Slot1").getValue(String.class);
            s2 = dataSnapshot.child("Slot2").getValue(String.class);
            s3 = dataSnapshot.child("Slot3").getValue(String.class);
            s4 = dataSnapshot.child("Slot4").getValue(String.class);

            if(s1.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 1 Already booked",Toast.LENGTH_LONG).show();
            }
            if(s2.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 2 Already booked",Toast.LENGTH_LONG).show();
            }
            if(s3.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 3 Already booked",Toast.LENGTH_LONG).show();
            }
            if(s4.equals("booked")){
                mButtonS1.setEnabled(false);
                Toast.makeText(this,"Slot 4 Already booked",Toast.LENGTH_LONG).show();

        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
})

Надеюсь, это поможет вам!

12
задан Lance Richardson 12 May 2009 в 00:18
поделиться

4 ответа

http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html

Когда интерпретатор Python вызывается с флагом -O, создается оптимизированный код и хранятся в файлах .pyo. Оптимизатор в настоящее время мало помогает; он удаляет только операторы assert.

Передача двух флагов -O интерпретатору Python (-OO) заставит компилятор байт-кода выполнить оптимизацию, которая в некоторых редких случаях может привести к неправильной работе программ. В настоящее время из байт-кода удаляются только строки doc , что приводит к более компактным файлам '.pyo'.

Мое предложение?

Используйте -OO для компиляции только файлов .pyo , если вам не нужны операторы assert и строки __doc__.

В противном случае используйте только .pyc .

Изменить

Я заметил, что вы упомянули только библиотеку Python. Большая часть библиотеки python может быть удалена, если вам нужна только часть функциональности.

Я также предлагаю вам взглянуть на tinypy , который представляет собой большое подмножество Python размером примерно 64 КБ.

14
ответ дан 2 December 2019 в 07:04
поделиться

Номер 3 должен и будет работать. Для использования скомпилированного кода Python файлы .pyo или .py не требуются.

3
ответ дан 2 December 2019 в 07:04
поделиться

Я бы рекомендовал хранить только файлы .py. Разница во времени запуска не так велика, и наличие исходного кода является плюсом, поскольку он будет работать под разными версиями python без каких-либо проблем.

Начиная с python 2.6, установка sys.dont_write_bytecode на True подавит компиляцию Файлы .pyc и .pyo вместе, поэтому вы можете использовать эту опцию, если у вас есть версия 2.6.

2
ответ дан 2 December 2019 в 07:04
поделиться

В конечном итоге все сводится к тому, что вам действительно нужен только один из трех вариантов, но лучше всего использовать .pys, либо .pyos, либо .pycs.

Вот пример как я вижу каждый из ваших вариантов:

  1. Если вы поместите .pys в zip-файл, вы не увидите построенных pycs или pyos. Следует также отметить, что разница в производительности только во время запуска, и даже в этом случае, по моему опыту, не так уж и велика (хотя ваш пробег может отличаться). Также обратите внимание, что существует способ предотвратить вывод интерпретатора .pycs, как указывает Algorias .
  2. Я думаю, что это идеальный вариант (либо тот, либо .pys и .pyos), потому что вы получаете лучшее сочетание производительности, отлаживаемости и надежности. Однако вам не обязательно нужен исходный файл и скомпилированный файл.
  3. Если вы ' re действительно стеснен в пространстве и нуждается в производительности, это сработает. Я бы посоветовал вам сохранить .pys, если это вообще возможно. Скомпилированные двоичные файлы (.pycs или .pyos) не всегда переносятся в разные версии python.
  4. Сомнительно, что вам понадобятся все три, если только вы не планируете иногда работать в оптимизированном режиме и иногда в неоптимизированном режиме.

] Что касается места, по моему (очень анекдотическому) опыту, файлы .py сжимаются лучше, чем .pycs и .pyos, если вы помещаете их в zip-файл. Если вы планируете сжимать файлы, .pyos, как правило, не сильно выигрывает с точки зрения свободного места, потому что строки документации обычно сжимаются довольно хорошо, а утверждения просто не занимают много места.

Скомпилированные двоичные файлы (.pycs или .pyos) не всегда переносятся в разные версии python.
  • Сомнительно, что вам понадобятся все три, если только вы не планируете иногда работать в оптимизированном режиме и иногда в неоптимизированном режиме.
  • ] Что касается места, по моему (очень анекдотическому) опыту, файлы .py сжимаются лучше, чем .pycs и .pyos, если вы помещаете их в zip-файл. Если вы планируете сжимать файлы, .pyos, как правило, не сильно выигрывает с точки зрения свободного места, потому что строки документации обычно сжимаются довольно хорошо, а утверждения просто не занимают много места.

    Скомпилированные двоичные файлы (.pycs или .pyos) не всегда переносятся в разные версии python.
  • Сомнительно, что вам понадобятся все три, если только вы не планируете иногда работать в оптимизированном режиме и иногда в неоптимизированном режиме.
  • ] Что касается места, по моему (очень анекдотическому) опыту, файлы .py сжимаются лучше, чем .pycs и .pyos, если вы помещаете их в zip-файл. Если вы планируете сжимать файлы, .pyos, как правило, не сильно выигрывает с точки зрения свободного места, потому что строки документации обычно сжимаются довольно хорошо, а утверждения просто не занимают много места.

    По моему (очень анекдотическому) опыту, файлы .py сжимаются лучше, чем .pycs и .pyos, если вы помещаете их в zip-файл. Если вы планируете сжимать файлы, .pyos, как правило, не сильно выигрывает с точки зрения свободного места, потому что строки документации обычно сжимаются довольно хорошо, а утверждения просто не занимают много места.

    По моему (очень анекдотическому) опыту, файлы .py сжимаются лучше, чем .pycs и .pyos, если вы помещаете их в zip-файл. Если вы планируете сжимать файлы, .pyos, как правило, не сильно выигрывает с точки зрения свободного места, потому что строки документации обычно сжимаются довольно хорошо, а утверждения просто не занимают много места.

    1
    ответ дан 2 December 2019 в 07:04
    поделиться
    Другие вопросы по тегам:

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