PyObjC

Python 和 Objective-C 的交互接口
授权协议 MIT
开发语言 Objective-C Python
所属分类 开发工具、 Python开发工具
软件类型 开源软件
地区 不详
投 递 者 岑和风
操作系统 OS X
开源组织
适用人群 未知
 软件概览

PyObjC 旨在为 PythonObjective-C 两种语言之间提供交互的接口。Python 语言可以通过PyObjC来使用已有的Objective-C的代码,反过来Objective-C也可以利用Python语言的一些功能。

PyObjC最主要的用处是在 Mac OS X 系统下使用纯Python语言来开发 Cocoa GUI 应用程序。

 示例代码:

class MyClass(NSObject):

   def init(self):
       """
       Designated initializer for MyClass
       """
       # ALWAYS call the super's designated initializer.
       # Also, make sure to re-bind "self" just in case it
       # returns something else, or even None!
       self = objc.super(MyClass, self).init()
       if self is None: return None

       self.myVariable = 10

       # Unlike Python's __init__, initializers MUST return self,
       # because they are allowed to return any object!
       return self


class MyOtherClass(MyClass):

   def initWithOtherVariable_(self, otherVariable):
       """
       Designated initializer for MyOtherClass
       """
       self = objc.super(MyOtherClass, self).init()
       if self is None: return None

       self.otherVariable = otherVariable
       return self

myInstance = MyClass.alloc().init()
myOtherInstance = MyOtherClass.alloc().initWithOtherVariable_(20)
  • 既然pyobjc能够使用cocoa提供的这么多库函数,那对我们有没有一些实际的作用呢?联想到在自动化测试中,appscript有些操作目前还是无法实现的,例如: 无法实现点击屏幕任意坐标(appscript中未找到类似的api) 无法双击某个控件(通过appscript两次调用控件的click方法是不生效的) 无法实现控件上右键…… 现在,这些appscript无法完成的操作,通过pyobjc又找

 相关资料
  • C语言外部函数接口 CFFI 提供了一套简单易用的机制来帮助 CPython 和 PyPy 与 C 语言进行交互。它支持两种模式:一种是内联的 ABI 兼容模式(下面举例说明),这一模式允许您从可执行模块中动态加载和运行函数(本质上与 LoadLibrary 和 dlopen 的功能相同);另一种是 API 模式,这一模式允许您构建 C 语言扩展模块。 from cffi import FFI f

  • 绑定Lua和C/C++的库 CPPlua tolua tolua++ luawrapper luabind luaplus Lua调用C/C++ 简介 Lua(念“鲁啊”)作为一门发展成熟的脚本语言,正在变得越来越流行。它也可以作为和C/C++执行脚本交互的语言。并且Lua的整个库很小,Lua 5.1版本整个静态链接的lua.dll才164KB,所以Lua很轻量,特别适合轻量级脚本嵌入。 这节要讲

  • 本文向大家介绍Lua和C语言的交互详解,包括了Lua和C语言的交互详解的使用技巧和注意事项,需要的朋友参考一下 前言 对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。 Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这

  • 问题内容: 我知道Java,现在正在学习Objective-C。Java接口和Objective-C协议之间到底有什么区别? 问题答案: 首先,从Java的一位创建者那里对该主题进行了一些历史性的展望。接下来,维基百科在Objective- C协议中 提供了适度有用的部分。特别要了解的是,Objective- C支持 正式协议 (使用关键字明确声明,相当于Java接口)和 非正式协议 (仅一个或多

  • 我试图使用Xcode5.0Objective-C项目中的libtorrent库,但没有成功。 我使用LLVM5.0从源代码中构建了boost 1.54和libtorrent-rasterbar(最新),没有任何问题。此外,通过MacPorts,我获得了pkg-config以获得libtorrent-rasterbar库的适当cflags。从我的生成设置中,pkgconfig库和cflags的输出为

  • 请求参数 easyopen定义了7个固定的参数,用json接收 { "name":"goods.get", "version":"2.0", "app_key":"test", "data":"%7B%22goods_name%22%3A%22iphone6%22%7D", "format":"json", "timestamp":"

  • 开放平台所提供的接口有几十个到几百个不等,同样支持的服务也是多个的。就拿支付宝开放平台来说 它所提供的服务有,支付服务、会员服务、店铺服务、芝麻信用服务等。相信这些服务接口肯定不是写在同一个项目中,但是它的接口地址只有一个:https://openapi.alipay.com/gateway.do 从地址信息中可以看到,这是一个网关服务。也就是说,网关是所有请求的入口,然后通过请求分发的方式,把请

  • 接口交互流程图: 完整交互流程图: 登录状态: 游客(未登录)状态: