面向对象最重要的概念就是类(Class)和实例(Instance)。一定要记住,class是一个抽象的模板,比如Student类,instance是根据class创建的具体“对象”。每个对象都有相同的方法,但各自的数据可能不同。
仍以Student类为例,在Python中,定义类是通过class关键字:
class Student(object):
pass
Class后面是班级名称,即Student。类名通常是一个大写的单词,后面跟着(object),表示该类继承自哪个类。稍后我们将讨论继承的概念。通常,如果没有合适的继承类,就使用对象类,也就是所有类最终都会继承的类。
一旦定义了 Student 类,就可以基于 Student 类创建 Student 的实例。创建实例是通过类名+()来实现的:
>>> bart = Student()
>>> bart
<__main__.Student object at 0x10a67a590>
>>> Student
<class '__main__.Student'>
可以看出变量bart指向了一个Student实例,后面的0x10a67a590就是内存地址。每个对象的地址都不一样,Student本身就是一个类。
你可以自由地将属性绑定到实例变量,例如,将名称属性绑定到实例 bart:
>>> bart.name = 'Bart Simpson'
>>> bart.name
'Bart Simpson'
由于类可以充当模板,所以一些我们认为必须绑定的属性可以在创建实例时强制填写。通过定义一个特殊的__init__方法,在创建实例时,绑定name、score等属性:
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
请注意,__init__ 方法的第一个参数始终是 self,这意味着创建的实例本身。因此,在__init__方法内部,可以给self绑定各种属性,因为self指向创建的实例本身。
使用 __init__ 方法,在创建实例时,不能传入空参数。必须传入匹配__init__方法的参数,self则不需要传入,Python解释器会传入实例变量本身。 :
>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何用Python合并多个pdf文件夹12/21
- ♥ 如何找到python列表?10/04
- ♥ 如何在 python3 字典中使用 copy() 函数?12/18
- ♥ 如何安装 python pytz10/24
- ♥ python time.asctime() 的字符串返回10/25
- ♥ python中从列表中删除元素的方法是什么?10/20
内容反馈