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

Python类中的属性初始化/声明:将它们放在哪里?

公西志文
2023-03-14
问题内容

我想知道在类的主体中或__init__函数内部初始化Python中的对象属性的最佳实践是什么?

class A(object):
    foo = None

class A(object):
   def __init__(self):
       self.foo = None

问题答案:

如果要让该类的所有实例共享该属性,请使用类属性:

class A(object):
    foo = None

这导致('foo',None)成为一(key,value)A.__dict__

如果希望每个实例都可自定义属性,请使用实例属性:

class A(object):
   def __init__(self):
       self.foo = None

这将导致('foo',None)是一个(key,value)在一对a.__dict__其中a=A()是的一个实例A



 类似资料:
  • 7.1.1 概念 数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。数组的编译时值初始化是按照数组顺序完成的(如下)。 注意事项 如果我们想让数组元素类型为任意类型的话

  • 本文向大家介绍iOS 在didSet中初始化属性,包括了iOS 在didSet中初始化属性的使用技巧和注意事项,需要的朋友参考一下 示例 也可以设置一个值并对其进行初始化:            

  • 8.1.1 概念 map 是引用类型,可以使用如下声明: var map1 map[keytype]valuetype var map1 map[string]int ([keytype] 和 valuetype 之间允许有空格,但是 gofmt 移除了空格) 在声明的时候不需要知道 map 的长度,map 是可以动态增长的。 未初始化的 map 的值是 nil。 key 可以是任意可以用 ==

  • 问题内容: 您将如何在Swift中实现以下模式? 所述类被初始化,其中包含的词典JSON数组。这些字典用于初始化类。但是,当访问或属性时,对象的初始化会延迟进行。 问题答案: 看来这个问题已经得到了很大的回答,但是回过头来看原始帖子,这是(IMHO)Swift中相对简洁的翻译。关键是您可以链接惰性属性。请注意,我同时使用了类函数和闭包- 两者都很好。

  • 条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同 顽固的pascal和ada程序员会经常想念那种可以任意设定数组下标上下限的功能,即,数组下标的范围可以设为10到20,不一定要是0到10。资深的c程序员会坚持一定要从0开始计数,但想个办法来满足那些还在用begin/end的人的这个要求也很容易,这只需要定义一个自己的array类模板: template<class t> class

  • 我有一份抽象的课堂报告: 我需要强制所有子类填充此 surrogateId 属性。(如果子类未填充属性,则会出现编译错误) 我尝试使用 final 关键字来强制我在构造函数中引入此属性的值,但我必须手动生成构造函数而不是使用 Lombok,很多样板代码。有没有办法在不手动生成结构的情况下实现相同的期望。