大多数IPython的"神奇功能"的工作对我罚款马上蝙蝠: %hist,%time,%prun等.然而,我注意到,%lprun无法IPython中找到,因为我想最初安装它.
然后我发现我应该安装line_profiler模块.我已经安装了这个模块,但似乎仍然无法使魔术功能正常工作.如果我试图打电话%lprun,iPython仍然无法找到该功能.如果我用全名(line_profiler.magic_lprun)调用它,可以找到该函数,但我根本无法使用它.下面是我所做的一个例子(从"Python for Data Analysis"一书中逐步采用):
%prun[在:]
def add_and_sum(x, y):
added = x + y
summed = added.sum(axis=1)
return summed
x = randn(3000, 3000)
y = randn(3000, 3000)
add_and_sum(x, y)
Run Code Online (Sandbox Code Playgroud)
有了这个,我得到了一个很好的答案,正如所料:
[输出:]
array([-23.6223074 , -10.08590736, -31.2957222 , ..., -14.17271747,
63.84057725, -50.28469621])
Run Code Online (Sandbox Code Playgroud)
我可以做剖析魔术功能%prun:
[在:]
%prun add_and_sum(x, y)
Run Code Online (Sandbox Code Playgroud)
[输出:]
6 function calls in 0.042 seconds
Ordered by: internal time
ncalls tottime percall cumtime …Run Code Online (Sandbox Code Playgroud) %%time
train_data = dt.fread('../input/prediction/train.csv').to_pandas()
输出结果为错误并显示 UsageError: Line magic function %%timenot found。建议一些方法。
一个类似的问题讨论__construct,但我把它留在我的头衔,搜索谁找到这个.
显然,__ get和__set采用的参数是获取或设置的变量.但是,您必须知道变量名称(例如,知道该人的年龄是$ age而不是$ myAge).因此,如果您必须知道变量名称,我不明白这一点,特别是如果您正在使用您不熟悉的代码(例如库).
在Mercurial中,许多扩展将其帮助/语法字符串包装在对下划线函数的调用中,如下所示:
_('[OPTION] [QUEUE]')
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为它似乎没有必要(编写扩展指令没有提到它),并且似乎没有在类中定义_,所以我想知道这是否是一些特殊的语法我不喜欢不明白,或许可以用另一种方式来说lambda,或者也许是身份功能?另外,我想知道这种方法的好处(无论它是什么)仅仅是文档建议的原始字符串.
我在Python文档中看到的任何内容都没有提到这样的函数,所以我不确定这是一个Python问题还是一个Mercurial问题.
以下是使用此结构的两个示例(查看cmdtable文件底部附近的字典)
假设我要为%edit -x创建别名%xed。我该怎么办?
我想知道是否可以创建一个扩展另一个魔术对象的魔术对象(使用PHP).
我有一个集合,其中包含一行数据.如果我这样做,
$collection->getData();
Run Code Online (Sandbox Code Playgroud)
它给我一个像下面的数组,
array(1) {
[0] => array(3) {
["id"] => string(1) "1"
["field1"] => string(10) "Field 1 Data"
["field2"] => string(10) "Field 2 Data"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,$collection->getField1()它说Undefined Method.据我所知,php magic getter应该像这样工作.不是吗?
任何想法如何在没有foreach构造的情况下获得此值.
我有类定义
class A(object):
def __init__(self):
self.content = u''
self.checksum = hashlib.md5(self.content.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
现在,当我更改self.content时,我希望self.checksum会自动计算.我想象中的东西会是
ob = A()
ob.content = 'Hello world' # self.checksum = '3df39ed933434ddf'
ob.content = 'Stackoverflow' # self.checksum = '1458iabd4883838c'
Run Code Online (Sandbox Code Playgroud)
那有什么神奇的功能吗?或者是否有任何事件驱动方法?任何帮助,将不胜感激.
我刚刚了解到我可以使用以下命令检查子串是否在字符串中:
字符串中的子字符串
在我看来,字符串只是一种特殊的元组,其元素是字符.所以我想知道是否有一种直接的方法来搜索元组中的元组片段.元组中的元素可以是任何类型.
元组中的元组
现在我的第二个问题:
>>> tu = 12 ,23, 34,56
>>> tu[:2] in tu
False
Run Code Online (Sandbox Code Playgroud)
我认为我得到了假,因为(12,23)不是tu的元素.但是,为什么字符串中的子串会起作用?场景背后隐藏着语法糖吗?