zoukankan      html  css  js  c++  java
  • python,类和对象(一)

      万物皆对象,在python中也存在对象,首先我们需要知道面向对象的三大特征封装、继承、多态。

      封装就是将一种或多种杂乱无序的代码进行有序的分类封装。

      继承可以理解为孩子会继承父亲所有的东西。

      多态可以理解问一个方法多种形式展出。

      类(class):首先约定俗成的规定,那么我们首先创建一个Person类,它包含属性和类方法

    class Person:
        
        #以下都是属性,也就是我们之前说的变量
        pid=410822190002022020 #身份证
        name='张学良'
        age = '118' #如果还活着
    
        # 方法
        def speakCN(self):
            print("能讲一口流利的东北话...")
    
        def run(self):
            print("以前跑得很快...")
    
        def eat(self):
            print("花天酒地...")

      当我们声明类完毕之后,我们要知道怎么调用他。调用方式如下

    >>> zhang = Person()
    >>> zhang.speakCN()
    能讲一口流利的东北话...
    >>> 

      下面说下继承,人是动物,而且是高级动物,那么人肯定会继承动物很多特性,比如喝水,吃饭,跑步,但是中国人会说中国话属于中国人自身的特质。

    class Animal:
        def drink(self):
            print("喝水.....")
        def run(self):
            print("以前跑得很快...")
    
        def eat(self):
            print("花天酒地...")
        
    
    class Person(Animal):
        
        #以下都是属性,也就是我们之前说的变量
        pid=410822190002022020 #身份证
        name='张学良'
        age = '118' #如果还活着
    
        # 方法
        def speakCN(self):
            print("能讲一口流利的东北话...")

      那么,我们通过实例化人的对象,然后调用动物的方法也是可以的,因为它通过Person(Animal)进行了继承:

    >>> p = Person()
    >>> p.drink()
    喝水.....
    >>> 

      多态的意思 就类似  :

    class Animal:
        def drink(self):
            print("喝水.....")
        def run(self):
            print("以前跑得很快...")
    
        def eat(self):
            print("花天酒地...")
        
    
    class Person(Animal):
        
        #以下都是属性,也就是我们之前说的变量
        pid=410822190002022020 #身份证
        name='张学良'
        age = '118' #如果还活着
    
        # 方法
        def speakCN(self):
            print("能讲一口流利的东北话...")
    
    class Parrot(Animal):
        def speakCN(self):
            print("学习人说话...")
        def fly(self):
            print("会飞....")

      人会说中国话,但是鸟也会,同样都是调用speakCN(self),但是表现形式不同。

  • 相关阅读:
    700. Search in a Binary Search Tree
    100. Same Tree
    543. Diameter of Binary Tree
    257. Binary Tree Paths
    572. Subtree of Another Tree
    226. Invert Binary Tree
    104. Maximum Depth of Binary Tree
    1、解决sublime打开文档,出现中文乱码问题
    移植seetafaceengine-master、opencv到ARM板
    ubuntu16.04-交叉编译-SeetaFaceEngine-master
  • 原文地址:https://www.cnblogs.com/pengpengzhang/p/8697782.html
Copyright © 2011-2022 走看看