class FileInfo(UserDict):
"store file metadata"
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename
一些伪面向对象语言,象 Powerbuilder 有一种“扩展”构造函数和其它事件的概念,即父类的方法在子类的方法执行前被自动调用。Python 不是这样,你必须显示地调用在父类中的适合方法。
我告诉过你,这个类象字典一样工作,那么这里就是第一个印象。我们将参数 filename 赋值给对象 name 关键字,作为它的值。
注意 __init__ 方法从不返回一个值。
当定义你自已的类方法时,你 必须 明确将 self 作为每个方法的第一个参数列出,包括 __init__。当从你的类中调用一个父类的一个方法时,你必须包括 self 参数。但当你从类的外部调用你的类方法时,你不必对 self 参数指定任何值;你完全将其忽略,而 Python 会自动地替你增加实例的引用。我知道刚开始这有些混乱,它并不是自相矛盾的,因为它依靠于一个你还不了解的区别(在绑定与非绑定方法之间),故看上去是矛盾的。
噢。我知道有很多知识需要吸收,但是你要掌握它。所有的 Python 类以相同的方式工作,所以一旦你学会了一个,就是学会了全部。如果你忘了别的任何事,也要记住这件事,因为我认定它会让你出错:
__init__ 方法是可选的,但是一旦你定义了,就必须记得显示调用父类的 __init__ 方法(如果它定义了的话)。这样更是正确的:无论何时子类想扩展父类的行为,后代方法必须在适当的时机,使用适当的参数,显式调用父类方法。
分享到:
相关推荐
在提供的例子中,`Student_Grade`类的初始版本使用了`__init__(self)`,此时对象的属性(如`name`和`grade`)默认为`None`。这意味着你需要在实例化之后单独为这些属性赋值,如下所示: ```python s1 = Student_...
在本节"Python基础进阶1.6"中,我们将深入探讨类、对象以及`__init__()`和`self`这两个关键概念。 首先,**类**是面向对象编程的核心,它是创建对象的蓝图或模板。在Python中,我们通过定义一个类来描述一类事物的...
__init__ : 对象的初始化, 是一个实例方法,第一个参数是self。 __call__ : 对象可call,注意不是类,是对象。 先有创建,才有初始化。即先__new__,而后__init__。 上面说的不好理解,看例子。 1.对于__new__ ...
单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class childA(Base): def __init__(self): print 'creat A ', Base.__init__(self) class childB...
在Python编程语言中,`__new__`和`__init__`是两个非常重要的特殊方法,它们在类的实例化过程中起着关键的作用。这两个方法主要用于控制对象的创建和初始化。 首先,`__new__`方法是类的静态方法,它在创建新对象时...
在Python的面向对象编程中,`__init__`、`__new__`和`__call__`是三个非常重要的特殊方法,它们各自扮演着特定的角色。这篇文章将详细讲解这三个方法的功能、用途以及如何正确使用。 首先,`__init__`方法是对象的...
如果在子类中需要使用或扩展父类的初始化逻辑,了解如何正确地继承和使用`__init__`方法就变得非常重要。 #### 父类与子类的基本结构 在Python中,定义一个父类和一个继承自该父类的子类是相对简单的。下面是一个...
使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候。例如: # -*- coding: utf-8 -*- class Person(object): """Silly Person""" def __...
在Python编程语言中,`__new__`和`__init__`都是特殊方法(也称为魔术方法),它们在创建和初始化对象时起着至关重要的作用。理解这两个方法的区别和联系对于深入掌握Python面向对象编程至关重要。 首先,让我们来...
def __init__(self, name, age, topic, hobby): self.name = name self.age = age self.topic = topic self.hobby = hobby ``` 2. **`__init__()`方法**: `__init__()`是类的一个特殊方法,也称为构造函数...
了解并恰当使用`__init__`是编写Python类的关键部分,它有助于我们构建更加健壮和高效的类结构。同时,掌握Python中的特殊方法和命名约定,能够帮助我们更好地理解和利用Python的面向对象特性。
def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_MainWindow() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.__LabCameraState=QLabel("摄像头...
在上述代码中,`MyClass`的`__init__`方法接收两个参数`param1`和`param2`,并将它们分别赋值给实例的`self.param1`和`self.param2`。这样,当我们创建`MyClass`的一个实例时,这两个参数的值就会被用来初始化对象的...
- **启动**:调用线程对象的`start()`方法,此时`__init__`方法中的`threading.Thread.__init__(self)`会被执行,线程进入就绪状态,并准备执行`run()`方法。 - **执行**:线程调度器决定何时执行线程的`run()`...
def __init__(self): self.my_attribute = "Hello, World!" def print_attribute(self): print(self.my_attribute) # 创建实例 my_instance = MyClass() # 调用方法 my_instance.print_attribute() # 输出: ...