【python-如何使用函数注释来验证函数调用类型】教程文章相关的互联网学习教程文章

python – 在函数调用中管理* args方差【代码】

有一个带有以下签名的方法:def foo(self, bar, *uks):return other_method(..., uks)通常这被称为:instance.foo(1234, a, b, c, d)但是在某些情况下我需要做这样的事情:p = [a, b, c, d] instance.foo(1234, p)在接收端,这不起作用,因为other_method看到* args由单个列表对象组成,而不仅仅是[a,b,c,d]列表构造.如果我键入方法为:def foo(self, bar, uks = []):return other_method(..., uks)它有效,但后来我每次都被迫这样做:...

Python:对象构造函数调用自身【代码】

我遇到了以下代码.对象构造函数调用自身:class StatusMixin(object):def __init__(self):super(StatusMixin, self).__init__()self.does_something()有没有任何实际的理由为什么这样实施?我认为人们只在多重继承的上下文中使用super方法.解决方法:你提到了多重继承.这个类被描述为mixin:也就是说,它专门用于多重继承的情况.它将是类层次结构中的元素之一,但不是顶部或底部.这就是为什么它调用超级 – 方法解析顺序中的下一个项目...

单元测试Python:在函数内部调用函数调用【代码】

我有这样的django视图# Django viewfrom some_module import f2 def f1(request, version):# some codef2(**kargs)# more codereturn HTTPResponse(response)函数f2在另一个模块中# some_module def f2(**kargs):# some codeDjango视图是API的一部分,因此请求和响应都在json中 我如何能 : >在模拟请求时为此函数编写单元测试> mock f2,这是一个基于数据库的函数,完全避免数据库连接 编辑: 我使用的数据库是Cassandra,所以我不能使...

python – 从函数调用的输出中删除None【代码】

def digits_plus(num):for i in range (num+1):print (str(i)+"+",end="")print (digits_plus(3))这是我得到的回报:0+1+2+3+None返回的最后一行始终存在“无”. 我希望这个返回:0+1+2+3+BTW.我对编程很陌生.我自己做了一些研究,但答案没有用.他们都告诉我删除打印但我希望字符串在同一行,所以我还必须包括end =“”.请帮忙.解决方法:发生这种情况的原因是你打印函数调用的结果,在这一行:print(digits_plus(3))但是您的函数不返回...

python-子类构造函数调用super().__init__()

【super作用】 如果子类(Puple)继承父类(Person)不做初始化,那么会自动继承父类(Person)属性name。如果子类(Puple_Init)继承父类(Person)做了初始化,且不调用super初始化父类构造函数,那么子类(Puple_Init)不会自动继承父类的属性(name)。如果子类(Puple_super)继承父类(Person)做了初始化,且调用了super初始化了父类的构造函数,那么子类(Puple_Super)也会继承父类的(name)属性。

如何在Python中获取函数调用的路径?

我正在设计类似于Django的Admin.Autodiscover()的东西. 我面临的第一个障碍是获取调用admin.autodiscover()的文件的路径,以便我可以遍历该文件夹中的应用程序/库,并确定哪些模型应保存在admin中. 我怎么做?解决方法:Python的Zen说:明确比隐含更好. 为什么不这样称呼它:your.autodiscover(__ file__),甚至你的自动发现(dirname(__ file__)).这样,读取代码的人不必在自动发现功能中寻找魔法,或者在文档中查找.

python – 函数调用和varagrs【代码】

def func(a,b,c,d):print(a,b,c,d)func(1, c=3, *(2,), **{'d':4}) func(1, c=3, 2, **{'d':4})为什么前者呼叫工作但后者不工作?我的意思是不应该第一次返回错误?不*只是解压缩一个iterable?解决方法:正如the docs所说:If the syntax *expression appears in the function call, expression must evaluate to an iterable. Elements from this iterable are treated as if they were additional positional arguments; if the...

python – “深度返回”一直回到第一个函数调用【代码】

假设我有两个(或更多)函数.一个是更高级别,通过调用不同的其他功能处理东西.如果其中一个函数失败(例如数学错误),我不仅要“中止”该函数,还要调用那个函数.在我的情况下,我需要这个来逃避错误,避免完成所有计算的其余部分,而不退出整个过程(这也将终止我的GUI).相反,我希望脚本继续运行,但回到最高级别. 这是我原始问题的抽象:def levelA(x):xx = levelB(x=x)xx *= 2return xxdef levelB(x):if x==0: returny = 10 / xreturn yx ...

函数调用函数在python中【代码】

class a:def __init__(self):bdef c(self):d(e)def d(self,g):print 1我想知道如果我想在函数c中使用函数d,我应该怎么做,因为它转为“未定义全局名称d”.谢谢.解决方法:d是一个实例方法,因此您使用self.d()调用它.

python – 来自dict的可更改函数调用【代码】

我是一个相对较新的人,拥有相当多的经验,我正在尝试进行基于文本的冒险,我正在建立一个战斗系统,并希望拥有不同能力的敌人.我不是每次都为不同的敌人重建战斗,而是试图为每个敌人使用可互换的词典.我的目标是创建一个函数调用,该函数调用根据战斗中的敌人而不会进入对象而变化.我在下面有一个例子,想知道是否有办法做类似的事情.wolf = {'ability': 'bite'} bear = {'ability': 'claw'} enemy = {}def claw():print('stuff')def bi...

为什么Python的函数调用语义传入关键字参数不是有序的?【代码】

使用函数定义中的双星语法,我们获得了一个常规字典.问题是它松开了用户输入顺序.有时,我们可能想知道传递给函数的关键字参数的顺序. 由于函数调用通常不涉及很多参数,我认为这不是性能问题所以我想知道为什么默认不是维持顺序. 我知道我们可以使用:from collections import Ordereddict def my_func(kwargs):print kwargs my_func(Ordereddict(a=1, b=42))但它不那么简洁:def my_func(**kwargs):print kwargs my_func(a=1, b=42)...

python递归函数调用【代码】

我正在尝试实现一个递归函数并遇到一些困难,会很感激你的想法.作为一个例子,让我们尝试创建一个名为sliding的函数来执行此操作sliding("python", 2) ["py", "yt", "th", "ho", "on"]也就是说,对于所选择的整数,我们沿着字符串滑动,抓取适当长度的子串,然后将它们全部返回到列表中. 现在,我可以(愚蠢地)尝试以递归方式定义此方法:def sliding(string,k):return s if len(string)==k else [string[:k]].append(sliding(string[1:],k...

当参数保持不变时,最大限度地减少代价高昂的函数调用次数(python)【代码】

假设有一个函数expensive_function_a(x),这样: >执行时间非常昂贵;>只要输入相同的x,它就会返回相同的输出;和>除了返回输出之外,它不执行“附加任务”. 在这些条件下,我们可以将结果存储在临时变量中,然后使用该变量进行这些计算,而不是使用相同的x连续两次调用该函数. 现在假设有一些函数(f(x),g(x)和h(x)在下面的例子中)调用expensive_function_a(x),并且这些函数中的一些可以相互调用(在下面的例子中, g(x)和h(x)都调用f(x)).在...

Python函数调用顺序【代码】

当你运行它时,Python如何“读入”程序?例如,我不明白为什么不存在NameError:名称’cough’未在以下代码中定义:def main():for i in range(3):cough()def cough():print('cough')if __name__ == '__main__':main()基本上,我的问题也可以说明为什么上面和下面的程序输出相同的东西:def cough():print('cough')def main():for i in range(3):cough()if __name__ == '__main__':main()解决方法:Python是一种解释性语言,它是由语句执...

如何在python中使用“class”这个单词作为参数函数调用【代码】

我根据经理的要求编写了一个XML生成器.为了减少打字,我决定使用ElementTree作为解析器,使用SimpleXMLWriter作为编写器. 结果XML需要名为“class”的属性.例如<Node class="oops"></Node>正如官方教程所建议的那样,编写XML节点只需使用以下方法:w.element("meta", name="generator", value="my application 1.0")所以我写道:w.element("Node", class="oops")python失败打哈欠SyntaxError.有帮助吗?解决方法:我想SimpleXMLWriter开...

函数调用 - 相关标签