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

python类__init__函数的PyCharm模板

伯俊弼
2023-03-14
问题内容

我有一个带有几个初始化变量的python类:

class Foo(object):
    def __init__(self, d1, d2):
        self.d1 = d1
        self.d2 = d2

有没有一种方法可以在PyCharm中自动创建此代码,因此我不必显式键入:

self.dn = dn

这种模式在我的代码中经常发生。有没有更好的(Pythonic)方法来初始化类?

我已经看过这篇文章(用Python进行自动属性分配的最佳方法是什么,这是个好主意吗?),但是我不想使用装饰器,因为它会使代码的可读性降低。


问题答案:

您可以从制作自定义实时模板开始。我不确定是否可以通过这种方式自动生成数量可变的参数,但是,对于两个构造函数参数,实时模板可能如下所示:

class $class_name$:
    def __init__(self, $arg1$, $arg2$):
        self.$arg1$ = $arg1$
        self.$arg2$ = $arg2$
$END$

这就是我在PyCharm中设置的方式:

在此处输入图片说明

或者,您可以更改设置实例属性的方式并将其归纳为N个参数,请参见:

  • 如何从python中的变量参数(kwargs)设置类属性


 类似资料:
  • 问题内容: 为什么构造函数确实称为“构造函数”?它们的目的是什么?它们与类中的方法有何不同? 另外,一个班级中可以有更多人吗?我尝试了以下方法,有人可以解释一下结果吗? 最后,是运算符重载器吗? 问题答案: Python中没有函数重载,这意味着您不能拥有名称相同但参数不同的多个函数。 在您的代码示例中,您没有 过载 。发生的是第二个定义将名称重新 绑定到新方法,导致第一个方法不可访问。 至于关于构

  • 问题内容: 我有一个带有很多参数的基类: 所有继承类都应运行基类的方法。 我可以在每个继承的类中编写一个将调用超类的方法,但这将是严重的代码重复: 自动调用超类的最Pythonic方法是什么? 问题答案: 如果有助于解决您的噩梦,请考虑使用 args和* kw。

  • 问题内容: 我在皮查姆有一个组织如下的项目: 我所有的__init__.py,除了上面的一个合适的 来源 是空白文件。我收到许多此类警告: 在__init__.py中找不到引用“ xxx” 例如,我的 FiltersController .py具有以下代码: 我得到这个警告: 在__init__.py中找不到引用“选择” 我正在想知道这是什么意思,我应该怎么做才能在Python中正确编码。 先感谢

  • 在创建类时,我们可以手动添加一个 __init__() 方法,该方法是一个特殊的类实例方法,称为 构造方法(或 构造函数)。 构造方法用于创建对象时使用,每当创建一个类的实例对象时, Python 解释器都会自动调用它。 Python 类中,手动添加构造方法的语法格式如下: def __init__(self,...):     代码块 注意,此方法的方法名中,开头和结尾各有 2 个下划线,且中间

  • 本文向大家介绍python类中super()和__init__()的区别,包括了python类中super()和__init__()的区别的使用技巧和注意事项,需要的朋友参考一下 单继承时super()和__init__()实现的功能是类似的 输出结果: 区别是使用super()继承时不用显式引用基类。 super()只能用于新式类中 把基类改为旧式类,即不继承任何基类 执行时,在初始化b时就会报

  • 问题内容: 我正在尝试为我的一个模型编写函数,以便可以通过执行以下操作创建对象: 当我编写模型时,我有: 这样可以正常工作,我可以将对象保存到数据库中,但是当我这样做时,除非我拿出函数,否则它不会拉任何东西。有任何想法吗? 问题答案: 依靠Django的内置功能并传递命名参数将是最简单的方法。 但是,如果您打算保存一些击键,建议您向类添加一个静态便捷方法,而不要弄乱初始化程序。