类:具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;
对象:日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化;姚明是人的实例化;小白(狗的名字)是狗的实例化;二郎神是神的实例化;
属性:用来描述具体某个对象的特征的是属性,是静态的。比如:姚明身高2.6米多;小白的毛发是棕色的;二郎神额头上有只眼睛;
方法:每个对象有它们自己的行为或者是使用它们的方法,比如说一只狗会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象;
类的成员:属性和方法称为这个对象的成员,因为它们是构成一个对象的主要部分,没有了这两样东西,那么对象也没什么存在意义了。
原文链接:https://blog.csdn.net/sunruirui1028/article/details/79214701
实例讲解
类是抽象的模版,而实例时根据类创建出来的一个个具体的”对象“,每一个对象都从类中继承有相同的方法,但各自的数据可能有不同(多态)。
1.以Student类为实例,定义类如下
class Student(object):
pass
# object 表示该类从哪个类继承下来的,object类是所有类都会继承的类
2.定义好了类,就可以通过Student类创建出student实例,创建实例是通过 类名 + () 实现
student = Student()
3.由于类起到模板的作用,因此,可以在创建实例的时候,,把我们认为必须绑定的属性强制写进去。这里就用到Python中的一个内置方法:__init__方法(双横线)
class Student(object):
# 在Student类中,把name, score 等属性绑上去
def __init__(self, name, score):
# self指的是类本身,self.name就是Student类的属性变量,name是外部传来的参数
self.name = name
# 故这里表示把外部传来的参数name的值赋值给Student类自己的属性变量self.name
self.score = score
4.注意:
- __init__方法的第一参数永远是self,表示创建的类实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
- 有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器会把自己的实例变量传进去
# 在创建实例的时候传入了两个属性
>>> student = Student("Hugh",99)
>>> student.name
'Hugh'
>>> student.score
99
5.函数与方法的不同之处:和普通函数相比,在类中定义函数只有一点不同,就是第一参数永远都是类本身实例变量self,并且调用时,不用传递该参数。除此之外,类的方法(函数)和普通函数并无区别,既可以使用默认参数,也可以使用可变参数或者关键词参数。
6.既然Student类实例本身就拥有这些数据,那么要访问这些数据就没有必要从外面的函数去访问,而可以直接在Student类的内部定义访问数据的函数(方法),这样,就可以把数据封装起来。这些封装数据的函数是和Student类本身所关联的,被称为类的方法。