Можно ли выполнить "git revert" в Egit для отката изменений путем создания нового совершить (в отличие от проверки более старого коммита или выполнения жесткого сброса, который не System Environment / Base
Что мне нужно, так это возможность установить несколько групп для этого пакета (например, System | Util | MyCompanyName
) - они будут похожи на теги, назначенные пакету.
Когда пакет установлен, я хочу запросить его, например
rpm -q --group System
или
rpm -q --group MyCompanyName
, и в обоих случаях я должен увидеть свой пакет (и другие, принадлежащие к этой группе)
Многие пакеты могут принадлежать в группу MyCompanyName, но только некоторые из них могут быть установлены. Мне нужен способ отличить наши пакеты от системных пакетов linux - я планировал сделать это, используя имя группы
. Я попытался поместить несколько строк Group:
, но он использует только последнюю. Все, что находится после Group:
, кажется, воспринимается как одна строка, и я не мог найти способ их разделить.
можно создать функцию класса
, имитирующую поведение стандартного класса, включая наследование или закрытые члены. Или можно имитировать функциональные инструменты, написав, например, функцию curry
, которая будет принимать функцию и некоторые из ее аргументов и возвращать частично примененную функцию.
Мне было интересно, возможно ли это сделать наоборот и имитировать прототипный метод на более классических языках. В частности, я немного подумал, можно ли имитировать прототипы в Python, но отсутствие поддержки анонимных функций (более общих, чем лямбды) оставляет меня в тупике.
Можно ли написать некоторые функции для имитации пропотипов в языки на основе классов, в частности в Python?
EDIT Позвольте мне привести пример того, как можно реализовать такую вещь (но я ' m не в состоянии сделать все это).
Во-первых, то, что больше всего напоминает объекты Javascript, - это словарь Python. Таким образом, у нас могут быть простые объекты, такие как
foo = {
'bar': 1,
'foobar': 2
}
. Конечно, мы хотим добавить метод, и это не проблема, пока метод соответствует лямбда-выражению
foo = {
'bar': 1,
'foobar': 2,
'method': lambda x: x**2
}
. Теперь мы можем вызвать, например,
foo['method'](2)
>>> 4
Now если бы у нас были произвольные функции в качестве методов, мы могли бы продолжать в том же духе. Сначала нам нужны функции внутри foo
, чтобы иметь доступ к самому foo
; в противном случае это просто обычные функции, а не методы.
Я думаю, что это можно сделать, применив функцию makeObject
к foo
, которая перебирает значения foo
и всякий раз, когда находит значение, которое можно вызвать, изменяет свой атрибут __ call __
, чтобы передать foo
в качестве первого аргумента.
На этом этапе у нас будут автономные объекты, которые можно объявить без необходимости создания классов.
] Затем нам нужно предоставить foo
прототип, который можно передать в качестве второго аргумента функции makeObject
. Функция должна изменить foo .__ getattr __
и foo .__ setattr __
следующим образом: всякий раз, когда атрибут не найден в foo
, его следует искать в foo .prototype
.
Итак, я думаю, что смогу реализовать это, ожидая одного: я не могу придумать никаких способов объявить методы более сложные, чем лямбда-выражения, кроме как объявить их заранее и прикрепить их к моему объекту . Проблема в отсутствии анонимных функций. Я спросил здесь, потому что, возможно, какой-нибудь гуру Python найдет какой-нибудь умный способ обойти это.