小编Sal*_*alo的帖子

响应所有方法调用的Python类实例

有没有办法创建一个实例响应任意方法调用的类?

我知道__getattr__(self, attr)当有人试图访问实例的属性时会有一个特殊的方法被调用.我正在寻找类似的东西,使我能够拦截方法调用.期望的行为看起来像这样:

class A(object):
    def __methodintercept__(self, method, *args, **kwargs): # is there a special method like this??
        print(str(method))


>>> a = A()
>>> a.foomatic()
foomatic
Run Code Online (Sandbox Code Playgroud)

编辑

其他建议的问题没有解决我的情况:我不想包装另一个类或更改第二类或类似的元类.我只想拥有一个响应任意方法调用的类.

感谢jonrshape,我现在知道,__getattr__(self, attr)当调用方法时,也会在访问属性时调用方法.但我怎么区分__getattr__,如果attr来自一个方法调用或属性的访问,以及如何让潜在的方法调用的参数?

python

10
推荐指数
2
解决办法
2374
查看次数

Haskell ghci无法加载文件

我是Haskell的新手并试图玩弄它.因此,我想在文件中定义一些函数,然后加载它们ghci.

我有一个文件tryout.hl,我想要ghci使用 :l tryout或加载:load tryout.hl.我得到了这两个命令target ‘tryout’ is not a module name or a source file.

我究竟做错了什么?

这是我的shell历史:

[user@pc](~/proggin/haskell)$ ls -lah
total 12K
drwxr-xr-x  2 user users 4.0K Oct 14 05:07 .
drwxr-xr-x 14 user users 4.0K Oct 13 07:51 ..
-rw-r--r--  1 user users  138 Oct 14 05:07 tryout.hl

[user@pc](~/proggin/haskell)$ cat tryout.hl 
take' :: (Num i, Ord i) => i -> [a] -> [a]  
take' n _  
    | n …
Run Code Online (Sandbox Code Playgroud)

haskell ghci

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

标签 统计

ghci ×1

haskell ×1

python ×1