【 在 JulyClyde 的大作中提到: 】
: 就是用dict的get方法的default来实现?
: 看起来不错
: 那我还有个需求
: ...................
当然,如果你不想将逻辑暴露在python代码,可以考虑放在cython中
1.创建at.c文件
#include <stdio.h>
#include <stdlib.h>
void generate_welcome_message(char *username, char *result) {
if (username[0]) {
sprintf(result, "@%s", username);
} else {
result[0] = '\0';
}
}
2.bash命令生成so文件
gcc -shared -o libat.so -fPIC at.c
3.调用so文件
import ctypes
# 加载动态链接库
lib = ctypes.CDLL("./libat.so")
name = "zhangsan"
# 定义函数参数和返回类型
lib.generate_welcome_message.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
lib.generate_welcome_message.restype = None
# 调用C语言库中的函数生成欢迎消息字符串
result_buffer = ctypes.create_string_buffer(100) # 分配一个缓冲区用于存储结果
lib.generate_welcome_message(name.encode(), result_buffer) # 传入用户名参数
# 获取结果并打印欢迎消息字符串
welcome_msg = result_buffer.value.decode("utf-8")
print(welcome_msg)
--
FROM 223.199.20.*