def make_bold(fn):
return lambda : "<b>" + fn() + "</b>"
def make_italic(fn):
return lambda : "<i>" + fn() + "</i>"
@make_bold
@make_italic
def hello():
return "hello world"
helloHTML = hello()
Run Code Online (Sandbox Code Playgroud)
输出: "<b><i>hello world</i></b>"
我大致了解装饰器以及它在大多数示例中如何与其中一个一起工作.
在这个例子中,有2个.从输出,它似乎@make_italic首先执行,然后@make_bold.
这是否意味着对于装饰函数,它将首先运行函数然后移动到其他装饰器的顶部?就像@make_italic第一个@make_bold,而不是相反.
那么这意味着它与大多数编程中的自上而下方法的规范不同?只为这个装饰器的情况?还是我错了?
任何人都知道ino_t类型的占位符是什么?我正在尝试使用printf打印出来并尝试了%d,%i,%s和其他但不能正常工作.
printf( " file name = %s, i-node number=**%d**\n", direntp->d_name, direntp->d_ino);
warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘__ino_t’ [-Wformat]
Run Code Online (Sandbox Code Playgroud)
假设我的其他代码是正确的.大多数示例仅显示如何打印名称,但不显示inode编号.我也搜过很多地方.
提前致谢
有一个问题要打印值的地址:
char word[] = "hi there"; //print address of string
int a = 1; // print address of 1
Run Code Online (Sandbox Code Playgroud)
我知道如何打印变量的地址,我认为值在变量地址内?那么值的地址实际上是变量地址?
这是一个棘手的问题,我是对的吗?
提前致谢
我需要打印环境的最后一个地址.
我知道我可以用这个得到第一个地址(或者我想我做到了).
extern char **environ;
printf("first address %p\n",&(*environ));
Run Code Online (Sandbox Code Playgroud)
但是最后一个地址怎么样?
Ctrl-C终止进程或Ctrl-\终止进程有什么区别?
但它们都很相似。
找不到任何有关 的文档Ctrl-\。
我正在尝试将字符串插入char*指针但显然无效.
我读过我可能需要使用malloc或其他东西?但其他网站并未明确分享.
char* token[1000];
gets(token);
printf("%s\n",*token);
Run Code Online (Sandbox Code Playgroud)
谢谢
更新:
现在我必须将指针(指向字符串)插入到具有所示参数的函数中.
int function(char *token[]);
char token[1000];
gets(token);
char*text=token;
printf("%s\n",text);
function(text);
Run Code Online (Sandbox Code Playgroud)
预期'char**'的错误,但参数的类型为'char*'