zoukankan      html  css  js  c++  java
  • 二十. 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

    '''

     

  • 相关阅读:
    .NET中对资源文件的使用简介
    jQuery框架学习
    asp.net 性能优化(转)
    走向ASP.NET架构设计(转)
    memcached全面剖析–5. memcached的应用和兼容程序
    ASP.NET MVC
    memcached全面剖析–3.memcached的删除机制和发展方向
    memcached完全剖析–1. memcached的基础
    memcached全面剖析–4. memcached的分布式算法
    memcached全面剖析–2.理解memcached的内存存储
  • 原文地址:https://www.cnblogs.com/ArrozZhu/p/8393755.html
Copyright © 2011-2022 走看看