如何在array_walk等函数中调用特定类的某个方法

我们知道像 array_walk()此类函数可以调用你自定的函数来执行相关的操作。如

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
echo "$key. $item2<br />\n";
}

echo "Before ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";

array_walk($fruits, 'test_print');

但是如何调用某个类的某个方法呢???

采用此方式: function (xx,array(类对象,'类方法名'))

像array_walk()为: array_walk(array,array(obj,'function name'));

类似的还有像 session的操作函数:

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
session_start();


那么要调用某个类的某个方法时: 如下写:

session_set_save_handler(array(&obj,"open"), array(&obj,close"),array(&obj,read"), array(&obj,write"), array(&obj,destroy"), array(&obj,gc"));


注:obj 指的是某个类的实例化的对象。(不是对象名称,而在一个对象)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python的内置模块ast来解析Python代码,找出其直接或间接调用了numpy函数的部分。下面是一段示例代码: ```python import ast def find_numpy_calls(source_code): calls = [] # 解析代码 tree = ast.parse(source_code) # 遍历语法树 for node in ast.walk(tree): # 如果是函数调用节点 if isinstance(node, ast.Call): # 如果调用的是numpy函数 if hasattr(node.func, 'value') and node.func.value.id == 'numpy': calls.append(node) return calls # 示例代码 source_code = """ import numpy as np a = np.array([1, 2, 3]) b = np.zeros((3, 3)) c = np.random.rand(10) """ calls = find_numpy_calls(source_code) for call in calls: print(call) ``` 其,`find_numpy_calls`函数接受一段Python代码作为输入,返回其所有直接或间接调用了numpy函数函数调用节点列表。在示例代码,我们调用了`find_numpy_calls`函数,并输出了其找到的所有调用节点。运行结果如下: ``` Call( func=Attribute( value=Name(id='np', ctx=Load()), attr='array', ctx=Load(), ), args=[List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load())], keywords=[], ) Call( func=Attribute( value=Attribute( value=Name(id='np', ctx=Load()), attr='zeros', ctx=Load(), ), attr='__call__', ctx=Load(), ), args=[Tuple(elts=[Num(n=3), Num(n=3)], ctx=Load())], keywords=[], ) Call( func=Attribute( value=Attribute( value=Name(id='np', ctx=Load()), attr='random', ctx=Load(), ), attr='rand', ctx=Load(), ), args=[Num(n=10)], keywords=[], ) ``` 可以看到,我们成功找到了代码所有调用了numpy函数的部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值