kivy передающая переменная в функциях с кнопкой [duplicate]

Вы можете использовать эту пользовательскую библиотеку (написанную с помощью Promise) для выполнения удаленного вызова.

function $http(apiConfig) {
    return new Promise(function (resolve, reject) {
        var client = new XMLHttpRequest();
        client.open(apiConfig.method, apiConfig.url);
        client.send();
        client.onload = function () {
            if (this.status >= 200 && this.status < 300) {
                // Performs the function "resolve" when this.status is equal to 2xx.
                // Your logic here.
                resolve(this.response);
            }
            else {
                // Performs the function "reject" when this.status is different than 2xx.
                reject(this.statusText);
            }
        };
        client.onerror = function () {
            reject(this.statusText);
        };
    });
}

Пример простого использования:

$http({
    method: 'get',
    url: 'google.com'
}).then(function(response) {
    console.log(response);
}, function(error) {
    console.log(error)
});
4
задан octopusgrabbus 7 July 2012 в 16:53
поделиться

4 ответа

Ниже следует объяснение проблемы. Возможно, вам захочется попробовать это?

class A(object):
    def printme(self):
        print "A"
a = A()
a.printme()

Имя self определяется только внутри методов, которые явно объявляют параметр с именем self. Он не определен в области класса.

Класс scope выполняется только один раз, во время определения класса. «Вызов» класса с A() вызывает его конструктор __init__(). Так что, возможно, вы действительно этого хотите:

class A(object):
    def __init__(self):
        self.printme()
    def printme(self):
        print "A"
a = A()
8
ответ дан octopusgrabbus 5 September 2018 в 09:04
поделиться

, если вы хотите что-то напечатать при создании экземпляра объекта:

class A(object):
    def __init__(self):
            self.printme()

    def printme(self):
            print "A"

a = A()
1
ответ дан catalin.costache 5 September 2018 в 09:04
поделиться

Это именно то, что он говорит: self не определяется, когда вы вызываете self.printme(). self не магически определен для вас в Python; он работает только внутри метода, который имеет аргумент с именем self. Если это поможет, попробуйте заменить слово self на что-то еще, скажем foo, во всей вашей программе (потому что в self в качестве идентификатора нет ничего особенного).

2
ответ дан David Z 5 September 2018 в 09:04
поделиться

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

class A(object):
    def __init__(self):
        self.printme()

    def printme(self):
        print "A"

a = A()
3
ответ дан Izkata 5 September 2018 в 09:04
поделиться
Другие вопросы по тегам:

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