广泛使用python的getattr是不好的做法吗?

广泛使用python的getattr是不好的做法吗?,第1张

广泛使用python的getattr是不好的做法吗?

直接属性访问和使用getattr()之间的区别应该可以忽略不计。您可以通过使用Python的

dis
模块比较两种方法来区分两个版本的字节码之间的区别:

>>> import dis>>> dis.dis(lambda x: x.foo)  10 LOAD_FAST     0 (x)   3 LOAD_ATTR     0 (foo)   6 RETURN_VALUE        >>> dis.dis(lambda x: getattr(x, 'foo'))  10 LOAD_GLOBAL   0 (getattr)   3 LOAD_FAST     0 (x)   6 LOAD_ConST    0 ('foo')   9 CALL_FUNCTION 2  12 RETURN_VALUE

但是,听起来好像您正在开发一个外壳程序,该外壳程序与Python库

cmd
执行命令行外壳程序的方式非常相似。
cmd
允许您通过将命令名称与
cmd.Cmd
对象上定义的函数进行匹配来创建执行命令的外壳,如下所示:

import cmdclass EchoCmd(cmd.Cmd):    """Simple command processor example."""    def do_echo(self, line):        print line    def do_EOF(self, line):        return Trueif __name__ == '__main__':    EchoCmd().cmdloop()

您可以在文档或http://www.doughellmann.com/PyMOTW/cmd/index.html上了解有关该模块的更多信息。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存