【发布时间】:2022-06-25 00:27:23
【问题描述】:
我的问题是,如何在 python 中编写这个?这样的事情可能吗?
它应该如何工作: 我从一个算法中获取数据,该算法将决定输出哪个字母。如果数据中的某些条件不适用于一个字符,则应针对另一个字符检查这些条件。数据和条件当然比这里显示的要复杂。
为什么要枚举: 因为只有这个小的 main 方法必须写在算法文件中(可迭代)。并且字母的条件封装在另一个文件中,结构清晰。
enum Letter {
A () {
public boolean condition(int[] args) {
if (args[0] > args[1]) return false;
if (args[1] > args[2]) return false;
return true;
}
},
B () {
public boolean condition(int[] args) {
if (args[0] > args[1]) return false;
if (args[1] < args[2]) return false;
return true;
}
},
C () {
public boolean condition(int[] args) {
if (args[0] < args[1]) return false;
if (args[1] < args[2]) return false;
return true;
}
};
public abstract boolean condition(int[] args);
}
public class Alphabet {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
//int[] arr = {1, 2, 1};
//int[] arr = {3, 2, 1};
for (Letter l : Letter.values()) {
if (l.condition(arr)) {
System.out.println(l);
break;
}
}
}
}
【问题讨论】:
-
请看stackoverflow.com/questions/36932/…。这是你需要的吗?
-
看起来您正在寻找一个
LetterFactory(名为Alphabet)类,该类基于传递给其主要工厂方法的条件(整数的可迭代)构造一个Letter实例?让它成为 Pythonenum.Enum没有特别的优势?
标签: python java enums iteration abstract