Python学习之路(面向对象之类和实例)
2018-01-05 本文已影响0人
55lover
面向对象之类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,
比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
class 是声明一个类 Student是类名 (object) 是表示Student类是从哪个类继承下来的, 一般情况下没有定,则写上默认的类object 因为都是继承object类来实现的
定义好了Student类 就可以根据类创建实例了(Instance)
可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的init方法,在创建实例的时候,就把name,score等属性绑上去
注意到init方法的第一个参数永远是self,表示创建的实例本身,因此,在init方法内部,就可以把各
种属性绑定到self,因为self就指向创建的实例本身。
class Student(object):
def __init__(self, name, score): # 创建固定属性 name, score
self.name = name
self.score = score
def _student(self):
print("我是{0},得了{1}".format(self.name, self.score))
def _level(self):
if self.score>= 90:
print('优秀')
elif self.score >= 60:
print('娘好')
else:
print('差')
dengpeng = Student('dengpeng', 99)
dengpeng.age = 24 # 创建age属性, 非固定属性
print(dengpeng.age)
dengpeng._level() # 验证 score 没被改变之前
dengpeng.score = 73 # 访问__init__ 固定属性 并且可以改变 score 属性值
print(dengpeng.score) #73
cpy = Student('cpy', 66)
print(dengpeng.name) # <__main__.Student object at 0x000000C3F6457AC8> 可以看出 dengpeng 指向的是Student的一个实例 0x000000C3F6457AC8则是這个实例的内存地址
dengpeng._student()
dengpeng._level()
cpy._student()
cpy._level()
小结
类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;
方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;
通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。
关注一波!喜欢一波!本人是前端菜鸟,正在做自己的个人博客邓鹏的博客,欢迎来交流学习, 使用的技术 vue + koa2 + mysql + php + nginx!