美文网首页
Python学习之路(面向对象之类和实例)

Python学习之路(面向对象之类和实例)

作者: 55lover | 来源:发表于2018-01-05 10:13 被阅读0次

    面向对象之类和实例

    面向对象最重要的概念就是类(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!

    相关文章

      网友评论

          本文标题:Python学习之路(面向对象之类和实例)

          本文链接:https://www.haomeiwen.com/subject/lbyjnxtx.html