• 二十. Python基础(20)--面向对象的基础


    二十. Python基础(20)--面向对象的基础

    1 ● 类/对象/实例化

    :具有相同属性、和方法的一类人//

    对象(实例): 具体的某一个人//

    实例化: 用类创建对象的过程类名(参数) # 这个参数传给__init__方法

    类的的定义 class关键字 类名(首字母大写)

     

    2 ● 面相对象方法在什么时候用?

    需要反复传递相同的参数给一些函数的时候

    例如一个长方形的长/宽作为参数反复传递给计算面积/周长/对角线的函数

     

    3 ● 属性

    类中的属性:

        #静态属性:类属性

        #动态属性:方法

    对象的属性:

        # __init__()方法初始化而来

        # 在类内调用对象的属性:self.属性名

        # 在类外调用对象的属性:对象名.属性名

     

    4 ● 案例: 人狗大战

    class Person:

        role = 'person'     #静态属性/类属性: 所有对象共有的属性,可以直接被类调用

        def __init__(self,name,sex,aggressive=200):

            #对象属性: 只属于某一个对象, 必须在实例化之后才能被对象调用

            self.name = name            #名字

            self.sex = sex             #性别

            self.aggr = aggressive     #攻击力

            self.blood = 2000         #

     

        def attack(self,dog): #类里面所有的方法本质上都是函数,拥有一个必须传递的参数self

            print('%s attack %s'%(self.name,dog.name))

            dog.blood -= self.aggr

     

    class Dog:

        def __init__(self,name,aggressive=500):

            self.name = name

            self.aggr = aggressive

            self.blood = 8000

     

        def bite(self,person):

            print('%s bites %s'%(self.name,person.name))

            person.blood = person.blood - self.aggr

            if person.blood <= 0:

                print('game over %s'%person.name)

     

    alex = Person('alex','male',250)

    egon = Person('egon','male')

    teddy = Dog('Mica')

    teddy.bite(alex)

    print(alex.blood)

    teddy.bite(alex)

    print(alex.blood)

     

    '''

    Mica bites alex

    1500

    Mica bites alex

    1000

    '''

     

  • 相关阅读:
    微信小程序之跨界面传参
    微信小程序简易教程
    css动画与js动画的区别
    不同浏览器兼容性的区别
    Filter学习
    FileDescriptor
    Executor框架
    Struts1的处理流程
    Struts1的实现原理
    [转]TOMCAT原理以及处理HTTP请求的过程、ContextPath ServletPath
  • 原文地址:https://www.cnblogs.com/ArrozZhu/p/8393755.html
Copyright © 2020-2023  润新知