Используйте условие в части значения понимания "
newlist = ["pass" if k == 1 else "fail" for k in decision]
В качестве альтернативы, если у вас есть больше значений, создайте словарь:
res_dict = {
0 : "Equal",
1 : "Higher",
-1 : "Lower",
}
newlist = [res_dict.get(x) for x in decision]
// the types of the constructor parameters, in order
// use an empty Type[] array if the constructor takes no parameters
Type[] paramTypes = new Type[] { typeof(string), typeof(int) };
// the values of the constructor parameters, in order
// use an empty object[] array if the constructor takes no parameters
object[] paramValues = new object[] { "test", 42 };
TheTypeYouWantToInstantiate instance =
Construct<TheTypeYouWantToInstantiate>(paramTypes, paramValues);
// ...
public static T Construct<T>(Type[] paramTypes, object[] paramValues)
{
Type t = typeof(T);
ConstructorInfo ci = t.GetConstructor(
BindingFlags.Instance | BindingFlags.NonPublic,
null, paramTypes, null);
return (T)ci.Invoke(paramValues);
}
Можно использовать одну из перегрузок Активатора. CreateInstance, чтобы сделать это: Activator.CreateInstance(Type type, bool nonPublic)
Использовать true
для nonPublic
аргумент. Поскольку true
соответствует общедоступному или непубличному конструктору по умолчанию; и false
соответствия только общедоступный конструктор по умолчанию.
Например:
class Program
{
public static void Main(string[] args)
{
Type type=typeof(Foo);
Foo f=(Foo)Activator.CreateInstance(type,true);
}
}
class Foo
{
private Foo()
{
}
}
Действительно ли это - вопрос, которым Вы были после? Активатор. CreateInstance с частным запечатанным классом
Если класс не является одним вашим, то он кажется, что API был сознательно записан для предотвращения этого, что означает, что возможно, что подход не то, что предназначили писатели API. Смотрите на документы и посмотрите, существует ли рекомендуемый подход к использованию этого класса.
Если Вы действительно управляете классом и хотите реализовать этот шаблон, то он обычно реализуется через статический метод для класса. Это - ключевое понятие, которое составляет Шаблон "одиночка", также.
Например:
public PrivateCtorClass
{
private PrivateCtorClass()
{
}
public static PrivateCtorClass Create()
{
return new PrivateCtorClass();
}
}
public SomeOtherClass
{
public void SomeMethod()
{
var privateCtorClass = PrivateCtorClass.Create();
}
}
Материал SqlCommandParameter является хорошим примером. Они ожидают, что Вы создадите параметры путем вызова вещей как это:
var command = IDbConnnection.CreateCommand(...);
command.Parameters.Add(command.CreateParameter(...));
Моим примером не является большой код, потому что он не демонстрирует свойства параметра команды установки или повторное использование параметров/команд, но Вы получаете идею.