这是我要做的事情的要点.我有一个对象列表,我知道他们有一个实例方法,如下所示:
def render(self, name, value, attrs)
# Renders a widget...
Run Code Online (Sandbox Code Playgroud)
我想(essentialy)在运行时装饰这些函数,因为我正在迭代对象列表.这样他们的渲染函数就变成了:
def render(self, name, value, attrs)
self.attrs=attrs
# Renders a widget...
Run Code Online (Sandbox Code Playgroud)
两个警告:
这里有一个例子:http: //wiki.python.org/moin/PythonDecoratorLibrary
演示如何向类添加新的实例方法.这里的区别是我想记住那个attrs参数后我想要落到原来的方法.
我在这里检查了几乎每一个类似的帖子,但我无法弄清楚我怎么能做我想要的.我正在尝试的是在C程序中输入一个输入,比如说4号,程序在数组中返回以下数字:
1
2
3
4
12
13
14
23
24
34
123
134
124
1234
Run Code Online (Sandbox Code Playgroud)
更清楚:如果输入数字是4,那么我想使用数字1-4并生成所有可能的数字组合(从1位组合到4位组合)而不重复数字.
我尝试了以下代码:
#include <stdio.h>
/* Prints out a combination like {1, 2} */
void printc(int comb[], int k) {
printf("{");
int i;
for (i = 0; i < k; ++i)
printf("%d, ", comb[i] + 1);
printf("\\b\\b}\\n");
}
int next_comb(int comb[], int k, int n) {
int i = k - 1;
++comb[i];
while ((i >= 0) && (comb[i] >= n - k + 1 + …Run Code Online (Sandbox Code Playgroud) 我正在寻找"排列"算法的快速实现(具有重复的排列).给定N个对象(数量a中的A,数量b中的B,......),生成所有可能的组合.
例:
Arrangement("AAA", "B", "CC") would return :
"AAABCC" "AABACC" "AABCAC" "AABCCA" "ABAACC" "ABACAC" "ABACCA" "ABCAAC"
"ABCACA" "ABCCAA" "BAAACC" "BAACAC" "BAACCA" "BACAAC" "BACACA" "BACCAA"
"BCAAAC" "BCAACA" "BCACAA" "BCCAAA" "AAACBC" "AACABC" "AACBAC" "AACBCA"
"ACAABC" "ACABAC" "ACABCA" "ACBAAC" "ACBACA" "ACBCAA" "CAAABC" "CAABAC"
"CAABCA" "CABAAC" "CABACA" "CABCAA" "CBAAAC" "CBAACA" "CBACAA" "CBCAAA"
"AAACCB" "AACACB" "AACCAB" "AACCBA" "ACAACB" "ACACAB" "ACACBA" "ACCAAB"
"ACCABA" "ACCBAA" "CAAACB" "CAACAB" "CAACBA" "CACAAB" "CACABA" "CACBAA"
"CCAAAB" "CCAABA" "CCABAA" "CCBAAA"
Run Code Online (Sandbox Code Playgroud)
(如果可能,用C,C#或Pascal编码)
在此先感谢
Philippe
algorithm ×2
c ×1
class ×1
combinations ×1
decorator ×1
django ×1
instance ×1
math ×1
permutation ×1
python ×1