为了了解创建类的必要性,让大家考虑一个示例,假设您想跟踪可能具有不同属性(如品种,年龄)的狗的数量。如果使用列表,则第一个元素可以是狗的品种,而第二个元素可以代表狗的年龄。假设有100条不同的狗,那么您如何知道哪个元素应该是哪个?如果您想为这些狗添加其他属性怎么办呢?
类创建一个用户定义的数据结构,该结构拥有自己的数据成员和成员函数,可以通过创建该类的实例来访问和使用它们。类就像对象的蓝图。
Python类的一些要点:
类由关键字创建class。
属性是属于类的变量。
属性始终是公共的,可以使用点(。)运算符进行访问。例如:
Myclass.Myattribute
在上面的示例中,class关键字表明您正在创建一个类,后跟该类的名称(在本例中为“Dog”)。
类对象
对象是类的实例。一个类就像一个蓝图,而一个实例是具有实际值的类的副本。这不再是个主意,而是一条真实的狗,就像七岁的哈巴狗。您可以有很多狗来创建许多不同的实例,但是如果没有该类的指导,您会迷路,不知道需要什么信息。
一个对象包括:
- 状态:它由对象的属性表示。它还反映了对象的属性。
- 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
- 身份:它为一个对象赋予唯一的名称,并使一个对象能够与其他对象进行交互。
声明对象(也称为实例化类)
当创建一个类的对象时,该类被称为实例化。所有实例都共享类的属性和行为。但是这些属性的值(即状态)对于每个对象都是唯一的。单个类可以具有任意数量的实例。
输出:
mamalI’mamamal
I’madog
在上面的示例中,创建了一个对象,该对象基本上是一只名为Rodger的狗。此类仅具有两个类别的属性,这些属性告诉大家罗杰是狗和哺乳动物。
Theself
类方法在方法定义中必须有一个额外的第一个参数。当大家调用方法时,大家没有为该参数提供值,Python提供了它。
如果大家有一个不带参数的方法,那么大家仍然必须有一个参数。
这类似于C++中的此指针和Java中的此引用。
当大家将此对象的方法称为时myobject.method(arg1,arg2),Python会自动将其转换为MyClass.method(myobject,arg1,arg2)–这就是所有特殊的self。
__init__方法
该__init__方法类似于C++和Java中的构造函数。构造函数用于初始化对象的状态。与方法类似,构造函数还包含在创建对象时执行的语句(即指令)的集合。实例化类的对象后立即运行。该方法对于您要对对象进行的初始化非常有用。
输出:
Hello,mynameisNikhil
类和实例变量
实例变量用于每个实例唯一的数据,而类变量用于该类的所有实例共享的属性和方法。实例变量是其值在构造函数或方法self中分配的变量,而类变量是其值在类中分配的变量。
输出:
Rodgerdetails:
Rodgerisadog
Breed:Pug
Color:brownBuzo
使用构造函数定义实例变量。
输出:
brown
总的来说,对象是将变量和函数封装到单个实体中的方法。对象从类中获取变量和函数。类本质上是创建对象的模板。