小编use*_*615的帖子

关于python中的Buffer接口

我对python中的术语'缓冲接口'很困惑.说"暴露其底层内存结构的python对象"可以用某个例子来解释是什么意思.提前谢谢

python pybuffer python-2.7 python-3.x pep3118

6
推荐指数
1
解决办法
1090
查看次数

报告实验室无法处理希伯来语(unicode)

我试图从以下python编程生成pdf但生成的输出不能正确显示希伯来字母

# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
def hello(c):
    c.drawString(100,100, "?? ?????")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()
Run Code Online (Sandbox Code Playgroud)

python reportlab

4
推荐指数
2
解决办法
5317
查看次数

在Haskell中键入函数的签名

我在haskell中定义了三个函数,它们将两个数相乘

k = \x y -> x * y

foo y = \x -> x * y

bar x = \x -> x * x
Run Code Online (Sandbox Code Playgroud)

但是我为这三个功能获得了不同的签名.

?> :t k
k :: Integer -> Integer -> Integer
?> :t foo
foo :: Num a => a -> a -> a
?> :t bar
bar :: Num a => t -> a -> a
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会这样吗?我可以在酒吧的类型签名中看到.它是否与a,b或a1,a2等的正常使用不同

haskell

3
推荐指数
1
解决办法
75
查看次数

3
推荐指数
2
解决办法
102
查看次数

lambda 演算中的 Eta 抽象有何用途?

lambda 演算中的 Eta 抽象意味着跟随。

函数f可以写成\x -> f x

  • Eta 抽象在减少 lambda 表达式时有什么用处吗?
  • 它只是某些表达式的另一种书写方式吗?

实际用例将不胜感激。

lambda-calculus

3
推荐指数
1
解决办法
1155
查看次数

Mainloops,事件循环在DBus服务中的作用

这是DBus服务的标准示例.

import dbus
import gobject
from dbus import service
# from gi._gobject import MainLoop
from dbus.mainloop.glib import DBusGMainLoop

class DBusServer(service.Object):
    def __init__(self, name, object_path):
        # super(service.Object, self).__init__(name, object_path)
        dbus.service.Object.__init__(self, name, object_path)

    @dbus.service.method("com.test", in_signature='s', out_signature="s")
    def test(self, args):
        return args + " Sent by dbus client"

    @dbus.service.method("com.test", in_signature='s', out_signature="s")
    def foo(self, args):
        return "foo"

bus_loop = DBusGMainLoop(set_as_default=True)
session_bus = dbus.SessionBus()
session_name = service.BusName("com.test", session_bus)
dbus_server = DBusServer(session_name, "/test")

loop = gobject.MainLoop()

try:
    loop.run()
except KeyboardInterrupt:
    loop.quit()
Run Code Online (Sandbox Code Playgroud)

我对此处使用的两个主循环有疑问
1.每个主循环或事件循环在此代码中的作用是什么(如果我使用正确的术语.我猜它们都是事件循环)
2.如果我的应用程序不是GUI应用程序为什么我需要gobject mainloop或qt mainloop,因为需要从X11库中捕获用户生成的事件(在Linux的情况下) …

python dbus python-3.x pyqt5

2
推荐指数
1
解决办法
1398
查看次数

在Haskell中添加2 + 2.8

该表达式2 + 2.8在Haskell中有效并且计算为4.8 类似于C,其涉及称为类型提升的东西,Haskell使用类型推断和adhoc多态来获得结果.

问题是什么原因,它不是两种语言中弱类型的例子.

haskell

2
推荐指数
3
解决办法
215
查看次数

Haskell中推断的函数类型

我在Haskell中定义了如下函数

func x | x > 0 = 4
       | otherwise = error "Non positive number"
Run Code Online (Sandbox Code Playgroud)

它的推断类型是

func :: (Ord a, Num a, Num t) => a -> t
Run Code Online (Sandbox Code Playgroud)

为什么它的类型不可能

func :: (Ord a, Num a) => a -> a
Run Code Online (Sandbox Code Playgroud)

haskell

2
推荐指数
1
解决办法
345
查看次数

动态绑定虚拟功能

class base {
public:
    virtual void foo()
    {
         cout << "Base class virutal function " << endl;
     }
}

class Derived : public base {
public:
    void foo()
     {
          cout << "Derived class virtual function " << endl;


int main()
{
    Base b, *ptr;
    Derived d;

    ptr = &b;
    ptr->foo();
    ptr = &d;
    ptr->foo();
}
Run Code Online (Sandbox Code Playgroud)

嗨,我对这里的dymnamic绑定有疑问.因为编译器知道当b.foo()存在时它可以使用基本虚拟fumction.当d.foo()存在时,它可以使用foo的派生版本.我的意思是编译器在编译期间有一些信息,但仍然有文献说在运行时决定使用哪个函数.

c++

1
推荐指数
2
解决办法
2877
查看次数

在python源代码中使用__cplusplus

在python源代码的头文件中有以下用法

#ifdef __cplusplus
extern "C" {
#endif
Run Code Online (Sandbox Code Playgroud)

这是否意味着Python为我们提供了使用C++编译器构建代码的能力.如果是,那么使用C和C++编译器构建python源之间是否存在任何差异

c c++ python

1
推荐指数
1
解决办法
58
查看次数

在haskell中使用lambdas实现currying吗?

以下代码正确地考虑在Haskell中进行currying.以下是haskell中添加的示例

f = \x -> \y -> x + y
Run Code Online (Sandbox Code Playgroud)

总的来说,在函数式编程中使用lamdbas实现了currying?

lambda haskell currying

0
推荐指数
1
解决办法
195
查看次数