положение геолокации / правNow.getLatitude () [duplicate]

Как и во всех хороших примерах, вы упростили то, что вы на самом деле пытаетесь сделать. Это хорошо, но стоит отметить, что python имеет гибкость , когда дело доходит до переменных класса и экземпляра. То же самое можно сказать о методах. Для хорошего списка возможностей я рекомендую прочитать введение новых классов в стиле Michael Fötsch , особенно разделы с 2 по 6.

Одна вещь, которая требует много работы, чтобы помнить, когда начало работы заключается в том, что python не является java. Больше, чем просто клише. В java компилируется весь класс, что делает разрешение пространства имен реальным простым: любые переменные, объявленные вне метода (в любом месте), являются переменными экземпляра (или, если статические, классные) и неявно доступны в методах.

С помощью python главное правило состоит в том, что для переменных есть три пространства имен:

  1. Функция / метод
  2. Текущий модуль
  3. g4]
  4. Встроенные

{begin pedagogy}

Есть исключения для этого. Главное, что происходит со мной, заключается в том, что при загрузке определения класса определение класса является его собственным неявным пространством имен. Но это продолжается только до тех пор, пока модуль загружается и полностью исключается, когда внутри метода. Таким образом:

>>> class A(object):
        foo = 'foo'
        bar = foo


>>> A.foo
'foo'
>>> A.bar
'foo'

, но:

>>> class B(object):
        foo = 'foo'
        def get_foo():
            return foo
        bar = get_foo()



Traceback (most recent call last):
  File "", line 1, in 
    class B(object):
  File "", line 5, in B
    bar = get_foo()
  File "", line 4, in get_foo
    return foo
NameError: global name 'foo' is not defined

{end pedagogy}

В конце концов, нужно помнить, что вы / g2] имеют доступ к любой из переменных, к которым вы хотите получить доступ, но, вероятно, неявно. Если ваши цели просты и понятны, то для Foo.bar или self.bar, вероятно, будет достаточно. Если ваш пример становится более сложным или вы хотите делать причудливые вещи, такие как наследование (вы можете наследовать методы static / class!), Или идея ссылаться на имя вашего класса внутри самого класса кажется вам неправильной, проверьте интро я связал.

2
задан XeniaSis 5 June 2015 в 11:00
поделиться

1 ответ

Есть ли что-то, что мне не хватает в том, как это решить?

Радиостанции GPS отключены нормально, поскольку они являются основным утечкой батареи. Следовательно, getLastKnownLocation() может часто возвращать null или устаревшее местоположение, потому что ничего не проверяет исправления местоположения. getLastKnownLocation(), следовательно, полезен, если у вас случайный интерес к местоположению и он счастлив, если нет места.

Если вам нужно знать местоположение, вам нужно будет использовать requestLocationUpdates() или аналогичный материал, чтобы заставить Android подключиться к GPS-радио и активно пытаться найти местоположение.

6
ответ дан CommonsWare 22 August 2018 в 20:13
поделиться
Другие вопросы по тегам:

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