zoukankan      html  css  js  c++  java
  • Python学习之旅(十七)

    Python基础知识(16):面向对象编程(Ⅰ)

    类和实例

    类是抽象的模板

    实例是根据类创建出来的一个个具体的对象,每个对象都拥有相同的方法,但各自的数据可能不同。

    类可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去

    方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据

    通过关键字“class”定义类,“Person”是类名,object表示该类是从哪个类继承下来的

    class person(object):
    
        def hello(name):
            return "Hello,%s"% name

    根据Person类创建出Person的实例,创建实例是通过类名+()实现的

    >>> bar=person()>>> bar.hello()
    'Hello,<__main__.person object at 0x000002106B85C0B8>'

    变量bart指向的就是一个Person的实例,后面的0x000002106B85C0B8是内存地址

    数据封装

    通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节

    访问限制

    隐藏内部的复杂结构,让内部属性不被外部访问,可以把属性的名称前加上两个下划线__

    在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

    继承

    定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)

    class Animal(object):
        def play(self):
            print('It's show time!')
        def run(self):
            print('Are you ready?')
    
    
    
    class Dog(Animal):
        def run(self):
            print('wang wang wang...')
    
    class Cat(Animal):
        def run(self):
            print('miao miao miao...')

    子类获得了父类的全部功能,同时子类也可以增加自己的方法

    一个类可以是一个或多个类的子类

    当子类和父类有相同的方法时,在代码运行的时候会调用子类的该方法,父类的那个相同的方法则被覆盖了

    多态

    多态指“事物有多种形态”,可以对不同的对象使用同样的操作(继承)

  • 相关阅读:
    bzoj1230[Usaco2008 Nov]lites 开关灯
    反素数
    POJ2886Who Gets the Most Candies?(线段树之约瑟夫)
    POJ2828 Buy Tickets(线段树之插队问题)
    codeforces 985C Liebig's Barrels(贪心)
    hdu Minimum Inversion Number(逆序数的小知识与线段树)
    hdu2795 Billboard(线段树)
    线段树之各类模板
    静态邻接表模板
    坐标离散化
  • 原文地址:https://www.cnblogs.com/finsomway/p/10030147.html
Copyright © 2011-2022 走看看