Как изменить имя модуля Python?

  1. Вы можете использовать Animated.value, изменить его и добавить слушателя, чтобы прослушать его изменения. Пример:
  2. ...
    
    this.state = {
      animatedValue: new Animated.Value(0),
      radius: 1,
    };
    
    
    this.state.animatedValue.addListener((obj) => {
      this.setState({
        radius: obj.value,
      });
    });
    
    ...
    
    
    
    ...
    1. Или вы можете использовать addListener и setNativeProps, как в этом примере : https://stackoverflow.com/a/44014604/7479959
    2. Или вы можете использовать готовый пакет, например: https://www.npmjs.com/package/react -native-svg-animations

    Ура!

6
задан Rodrigo 26 February 2009 в 12:01
поделиться

6 ответов

Да, необходимо переименовать файл. Лучше всего был бы после выполнения этого для удаления oldname.pyc и oldname.pyo скомпилированные файлы (если есть) от Вашей системы, иначе модуль будет разрешен к ввозу под старым названием также.

9
ответ дан 8 December 2019 в 02:12
поделиться

Если Вы действительно хотите импортировать файл 'oldname.py' с оператором, 'импортируют newname', существует прием, который позволяет: Импортируйте модуль куда-нибудь со старым названием, затем введите его в sys.modules с новым именем. Последующие операторы импорта также найдут его под новым именем. Пример кода:

# this is in file 'oldname.py'
...module code...

Использование:

# inject the 'oldname' module with a new name
import oldname
import sys
sys.modules['newname'] = oldname

Теперь Вы можете везде свой модуль с import newname.

22
ответ дан 8 December 2019 в 02:12
поделиться

Каждый класс имеет __module__ свойство, хотя я верю изменению этого, не изменит пространство имен Класса.

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

Ваш лучший выбор состоит в том, чтобы переименовать файл.

0
ответ дан 8 December 2019 в 02:12
поделиться

Где хотели бы Вы иметь это __module__ переменная, таким образом, Ваш исходный сценарий знает, что импортировать? Модули распознаны именами файлов и смотрели в путях, определенных в sys.path переменная.

Так, необходимо переименовать файл, затем удалить oldname.pyc, только для проверки все работает правильно.

0
ответ дан 8 December 2019 в 02:12
поделиться

Можно изменить имя, используемое для модуля при импорте при помощи как:

import foo as bar
print bar.baz
13
ответ дан 8 December 2019 в 02:12
поделиться

Когда Вы делаете import module_name интерпретатор Python ищет файл module_name.extension в PYTHONPATH. Таким образом, нет никакого chaging, которые называют, не меняя имя файла. Но конечно можно сделать:

import module_name as new_module_name

или даже

import module_name.submodule.subsubmodule as short_name

Полезный, например, для написания кода DB.

import sqlite3 as sql
sql.whatever..

И затем переключаться, например. sqlite3 кому: pysqlite Вы просто изменяете строку импорта

0
ответ дан 8 December 2019 в 02:12
поделиться
Другие вопросы по тегам:

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