木兰重生:与 Python 生态的兼容问题;字符串插值 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuanwu
V2EX    分享发现

木兰重生:与 Python 生态的兼容问题;字符串插值

  •  
  •   xuanwu 2020-10-08 11:47:19 +08:00 1012 次点击
    这是一个创建于 1867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文链接:木兰重生:与 Python 生态的兼容问题;字符串插值

    节选:

    前两天用木兰调用 pygame 库实现了个井字棋棋盘界面。期间遇到了一些问题,先小结一下。

    1 生态兼容问题

    注:解决方法限于个人至今对木兰和 Python 的了解。如有高招,烦请指教!

    1.1 元组 ( tuple )

    python 中很常用的结构,可以如下初始化:

    >>> t = (1,2) >>> t (1, 2) >>> t = 2, 3 >>> t (2, 3) 

    但木兰中好像没找到类似的简便方法。幸好与 python 相似,函数返回多项时就会打包成元组,因此暂时这样定义函数:

    func 多项 2(a, b) { return a, b } func 多项 3(a, b, c) { return a, b, c } ... 

    之后支持变长参数时,就可以合并为一个函数了。

    1.2 如何引用 type 属性

    下面是 pygame 的常见操作,检查 pygame.event 的 type:

     for event in pygame.event.get(): if event.type == pygame.QUIT : 

    但木兰中的 type 是类型定义的关键词,因而如果仍使用 .type 会报错。刚遇到这一问题时,颇为震惊,以为发现了木兰的一个大硬伤,不过还好 python 还有一个 __getattribute__('type') 可用。但另一种方法用在这里就无法获得 type 值:

    func getType(个体) { for 属性, 值 in 个体.__dict__.items() { return 值 if 属性 == 'type' } } 

    大概因为这个 type 是个 @property (木兰中的应变属性),那么如果是普通属性如下:

    type 人 { func $人(名) { $type = 名 } } 

    上面两种方法就都可用。

    1.3 键 in 字典

    ......

    完整内容见原文链接:木兰重生:与 Python 生态的兼容问题;字符串插值 (降权,发不起完整的)

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3424 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:01 PVG 13:01 LAX 21:01 JFK 00:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86