Получение ошибки «источник: не найден» при использовании источника в bash-скрипте

Легкий:

class Foo:
    def bar1(self):
        print 1
    def bar2(self):
        print 2

def callMethod(o, name):
    getattr(o, name)()


f = Foo()
callMethod(f, "bar1")

Взгляните на getattr

Вы также можете использовать setattr для установки класса атрибуты по именам.

144
задан Chris Lawlor 21 March 2009 в 23:14
поделиться

2 ответа

Если Вы пишете сценарий удара, зовете его по имени:

#!/bin/bash

/bin/sh, как гарантируют, не будет ударом. Это вызвало тонну поврежденных сценариев в Ubuntu несколько лет назад (IIRC).

встроенный источник работает просто великолепно в ударе; но Вы могли бы также просто использовать точку как предложенный нормандец.

219
ответ дан guns 21 March 2009 в 23:14
поделиться
  • 1
    @JaredTomaszewski Без проблем! (1) Который Вы имеете к $apply изменения объема, которые происходят асинхронно за пределами Angular' s собственные функции, таким образом, грязная система слежения берет изменение. (2) В случае, если пользователь уже прокрутил вниз, когда директива связана; посмотрите этот пример: jsfiddle.net/BinaryMuse/V7GZ2 (3) Да, это было бы, но тогда директива является менее допускающей повторное использование, потому что это только работает с переменными объема, названными scroll. – Michelle Tilley 5 March 2014 в 02:43

В стандарте POSIX, который /bin/sh, как предполагается, уважает, команда . (единственная точка), не source. Эти source команда csh - изм, который вытянули в bash.

Попытка

. $env_name/bin/activate

Или если у Вас должен быть неPOSIX bash - измы в Вашем коде, используйте #!/bin/bash.

170
ответ дан Norman Ramsey 21 March 2009 в 23:14
поделиться
  • 1
    @JaredTomaszewski Да, that' s корректный - если Угловой isn' t уже в цикле обзора, you' ll должны начать один для изменений в объемах, которые будут обнаружены в представлении. bind просто постоянный клиент Function.prototype.bind; I' m просто создающий функцию, которая будет звонить scope.$apply с $scope набор к this контекст и handler как первый аргумент функции. Вы, возможно, также сказали function() { scope.$apply(handler); } – Michelle Tilley 5 March 2014 в 03:32
Другие вопросы по тегам:

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