【问题标题】:Using Objective C function call styles in Python在 Python 中使用 Objective C 函数调用样式
【发布时间】:2011-08-01 09:36:56
【问题描述】:

我知道这个问题会收到一些相当强大的 cmets,但我还是要发布它。

我正在使用 Python 开发一个项目。我选择 Python 的简单原因是可用的库,它是跨平台和开源的。我的问题是我真的很喜欢使用 Objective C 的非常冗长、描述性的方法名称进行编码。我必须编写的函数类型可以有相当复杂的参数,我发现使用 Objective C 方法我不必经常请参考其他文档,以确保我使用正确的参数和正确的函数。

有没有什么方法可以使用 Objective C 风格的 Python 调用函数?我知道这可能不适合推荐的 Python 编码样式,但它确实适合我现在正在做的事情,所以如果可能的话,我想尝试找到一种方法。

【问题讨论】:

    标签: python objective-c coding-style


    【解决方案1】:

    如果您的意思是“我可以用方括号而不是圆括号来编写调用,并将它们放在对象和方法名称周围而不是之后并省略逗号”,那么不可以。

    如果您的意思是“我可以制作详细的描述性方法名称吗”,那么您当然可以;你可以用任何值得一提的语言来做到这一点。

    我认为您真正的意思是“我可以使用 [myObject frobnicateWithHax:42 Foo:23 Bar:69] 中的关键字参数吗?”。是的;在 Python 中,拼写为 myObject.frobnicateWith(hax=42, foo=23, bar=69)。在函数定义方面,有很多方法可以让它工作,这取决于你想要什么;有关默认参数和 kwargs,请参阅文档(或良好的参考或教程)。

    老实说,一旦您对这类语言功能的名称有所了解,Google 比 SO 更能回答这类问题。

    【讨论】:

    • @Rudy See this question
    • 请注意,在 Python 中,您几乎可以肯定会删除名称中的 With,而只需调用 my_object.frobnicate(hax=42, foo=23, bar=69)。请注意,您的函数定义不需要使用默认值或 kwargs - 只要名称就足够了,例如:def frobnicate(self, hax, foo, bar): ...
    • 我提到谷歌是有原因的......试试'python kwargs'看看你会得到什么。 @ben 这都是真的,至少假设您不想强制调用者指定名称。 :) 这不是很 Pythonic :)
    猜你喜欢
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    相关资源
    最近更新 更多