类别是抽象概念,对象是具体事物。在OOP的世界里,所有的东西都是对象,对象都有属性和行为,每一个对象都是独特的,对象必须属于某个类(型)。在提取了大量具有共同特性的对象的静态特性(属性)和动态特性(行为)之后,就可以定义一种被称为类的特性了。
首先,我们用生活中的例子来说明类和对象,类(class):相当于建筑图纸(blueprint),对象(object):房屋(已建成)。
下一步,让我们通过代码了解类和对象的概念:
您可以使用class关键字在Python中定义类,然后在类中通过前面已经学习的函数定义方法,这样您就可以用下面的代码描述对象的动态特性:
classStudent(对象):
“__init__”是一种在创建对象时用于初始化操作的特殊方法#通过该方法,我们可以将name和age两个属性绑定到学生对象。
def__init__(self、名称、标题):
name=name。
self.age=age
定义(self,course_name):
print('%s'%s'%(self.name,course_name))
“#PEP8”要求标识符的名称用全小写字母连接多个单词。
但许多程序员和公司更愿意使用驼峰命名法(驼峰标志)
defwatch_tv(self):
fself.age<18:
print('%s'只能看熊出没'.'%self.name)
else:
print('%s'电锯惊魂'.'%self.name)
注:class后面紧跟着类名称Student。classname通常以大写开头,紧跟(object),表示该类继承自哪一个类,继承的概念我们稍后会讲到,通常在没有合适的继承类的情况下使用object类,即所有类最终都将继承的类。
定义好一个类后,就可以按照以下方法创建对象并向其发送消息。通过类名称+()来创建实例:
德夫曼():
建立学生物品,并指定名字和年龄。
1=Student(“小白菜”,21)
发送study消息给对象stu1.study('Python程序设计')
将watch_tv消息发送给对象。
1.watch_tv.()
Stu2=Student(15号王大锤)
Stu2.study(思想品德)
2.watch_tv.()
if__name__=='__main__:main()
与普通函数相比,定义在类中的函数只有一点不同,即第一个参数总是实例变量self,而调用时不需要传递它。除了这些以外,类的方法与普通函数没有什么不同,因此,您仍然可以使用默认参数、可变参数、关键字参数以及命名它们。
打结
class是一个创建实例的模板,而实例是一个具体的对象,各个实例所拥有的数据相互独立,互不影响。
与普通函数不同的是,方法是与实例绑定的函数,方法可以直接访问实例数据。
我们通过对实例调用方法,直接对对象内的数据进行操作,而不需要知道方法内的实现细节。
Python允许任何数据绑定到实例变量,这与静态语言不同,也就是说,尽管它们是同一个类的不同实例,但是它们拥有不同的变量名。