JS - обнаружение, если устройство повернуто более чем на пороговое значение в одной из осей (X, Y, Z)

Python3.x

В мире python3.x вы, вероятно, должны использовать объект Signature :

import inspect

def get_default_args(func):
    signature = inspect.signature(func)
    return {
        k: v.default
        for k, v in signature.parameters.items()
        if v.default is not inspect.Parameter.empty
    }

Python2.x (старый ответ)

Аргументы / значения по умолчанию могут быть объединены как:

import inspect
a = inspect.getargspec(eat_dog)
zip(a.args[-len(a.defaults):],a.defaults)

Здесь a.args[-len(a.defaults):] - аргументы со значениями по умолчанию и, очевидно, a.defaults - соответствующие значения по умолчанию .

Вы даже можете передать вывод zip в конструктор dict и создать сопоставление, подходящее для распаковки ключевых слов.


глядя на документы, это решение будет работать только на python2.6 или новее, так как я предполагаю, что inspect.getargspec возвращает с именем tuple . Более ранние версии вернули регулярный кортеж , но было бы очень легко модифицировать соответствующим образом. Вот версия, которая работает со старыми (и более новыми) версиями:

import inspect
def get_default_args(func):
    """
    returns a dictionary of arg_name:default_values for the input function
    """
    args, varargs, keywords, defaults = inspect.getargspec(func)
    return dict(zip(args[-len(defaults):], defaults))

Подумайте об этом:

    return dict(zip(reversed(args), reversed(defaults)))

также будет работать и может быть более интуитивным для некоторых людей .


1
задан Shlomi Schwartz 17 January 2019 в 12:30
поделиться

1 ответ

Можете ли вы попробовать это один раз.

var previousOrientation = window.orientation;
var checkOrientation = function(){
    if(window.orientation !== previousOrientation){
        previousOrientation = window.orientation;
        // orientation changed, do your magic here
    }
};

window.addEventListener("resize", checkOrientation, false);
window.addEventListener("orientationchange", checkOrientation, false);

// (optional) Android doesn't always fire orientationChange on 180 degree turns
setInterval(checkOrientation, 2000);
0
ответ дан Kevin 17 January 2019 в 12:30
поделиться