当前位置: 首页 > 面试题库 >

使用self。*作为方法的默认值

沈宏朗
2023-03-14
问题内容

def save_file(self, outputfilename = self.image_filename):
self.file.read(outputfilename)
....

NameError: name 'self' is not defined在第一行中给出。似乎Python不接受它。我该如何重写代码,以免引发异常


问题答案:

使用默认值None并检测到该值。

def save_file(self, outputfilename=None): 
    if outputfilename is None:
        outputfilename = self.image_filename
    self.file.read(outputfilename)
    ....


 类似资料:
  • 问题内容: 我正在开发一个大型Django应用程序,其中绝大多数需要登录才能访问。这意味着我们在整个应用程序中都花了很多钱: 很好,只要我们记得将它添加到任何地方,它就可以很好地工作!可悲的是,有时我们忘记了,而且失败往往不是很明显。如果到视图的唯一链接是在@login_required页面上,则你不太可能注意到实际上无需登录即可进入该视图。但是,坏人可能会注意到,这是一个问题。 我的想法是反转系

  • 问题内容: 我想将类属性用作类方法的参数之一的默认值。但是,此构造引发了一个异常,而我不明白为什么: 为什么会失败,并且有办法做到这一点? 问题答案: 这是因为,根据文档: 执行功能定义时将评估默认参数值。 这意味着在定义函数时,表达式将被计算一次 当定义了时,的定义是不完整的,因为它仍在解析中,因此您还不能参考。解决该问题的一种方法是将一个特殊的唯一值传递给,例如:

  • 问题内容: 为了使用Moxy作为JAXB实现,必须在具有应用程序域类的文件夹中添加一个名为jaxb.properties的文件,并包括以下行 是否可以将moxy设置为项目的默认值?如果我有许多带有带注释的域类的文件夹,我应该把这个文件放在哪个文件夹中? 问题答案: 注意: 我是 EclipseLink JAXB(MOXy)的 负责人,并且是 JAXB(JSR-222) 专家组的成员。 MOXy已经

  • PHP在上述行中如下所示: ? 编辑:函数在类中

  • 问题内容: 我现在使用的装饰器。无论如何,使其成为默认行为? 问题答案: 我在仪器项目中做到了这一点。我使用装饰器: 然后,我is_public()为无需登录即可访问的几个地方创建了一个装饰器:

  • 问题内容: 我正在尝试简化我的作业问题之一,并使代码更好一点。我正在使用的是二进制搜索树。现在,我的班级中有一个函数可以查找所有元素并将它们放入列表中。 然后我使用makeList()函数从树中取出所有节点,并将它们放入列表中。要调用该函数,我要做。对我来说,这似乎有些重复。我已经用调用了树对象,所以只是浪费了一点输入。 现在,makeList函数为: 我想使aNode输入一个默认参数,例如(它不