zoukankan      html  css  js  c++  java
  • python程序设计——面向对象程序设计:类

    理解面向对象

    基本原则是,计算机程序由多个能够起到子程序作用的单元或对象组合而成

    关键性观念是,数据以及对数据的操作封装在一起,组成一个相互依存、不可分割的整体,即对象

    python面向对象特性

    完全支持面向对象的基本功能,如封装、继承、多态以及基类方法的覆盖或重写

    python中,对象的概念很广泛,一切内容都可以称为对象

    创建类时用变量形式表示的对象属性称为数据成员成员属性

    用函数形式表示的对象行为称为成员函数成员方法

    一、类

    1.类的定义与使用

    # 定义类
    class Car:
        def info(self):
            print("this is a car")
    
    # 使用类实例化对象
    # 通过“对象.方法”访问其中的数据成员或成员方法
    car = Car()
    car.info()
    
    out:
    this is a car
    
    # 使用 isinstance测试某个对象是否为某个类的实例
    isinstance(car,Car)
    
    out:
    True
    
    # 关键字 pass,类似于空语句
    # 占位,预留函数空间
    class Car:
        def info(self):
            print("this is a car")
        def color(self):
            pass

    2.类成员与实例成员

    实例属性,一般指在构造函数__init__ 中定义的,定义和使用时必须以self做为前缀

    类属性,在类中所有方法之外定义的数据成员

    在主程序中(或类的外部),实例属性属于实例(对象),只能通过对象名访问,

    而类属性属于类,可以通过类名或对象名访问

    --------------------------------------------------------------------

    在Python中,可以动态地为类和成员增加成员,体现了python的动态类型

    --------------------------------------------------------------------

    class Car:
        price = 10000      # 定义类属性
        def __init__(self,c):   # 构造函数
            self.color=c   # 定义实例属性
    
    car1 = Car("red")
    car2 = Car("blue")
    print(car1.color,Car.price)
    
    Car.price = 11100  # 修改类属性
    Car.name = 'bird'  # 增加类属性
    car1.color = "yellow"  # 修改实例属性
    print(car2.color, Car.price, Car.name)

    函数与方法有区别,方法一般指与特点实例绑定的函数

     1 # 动态为对象增加成员方法
     2 class Demo:
     3     pass
     4 t=Demo()
     5 def test(self,v)
     6     self.value = v
     7 
     8 t.test = test    # 增加成员方法 test
     9 t.test(t,20)
    10 
    11 print(t.value)
    12 
    13 out:
    14 20

    3. 私有成员与共有成员

    python并不提供对私有成员严格的访问保护机制,

    在定义类的属性时,如果属性名以两个下划线 __ 开头,表示私有属性

    私有属性在类的外部不能直接访问,需要通过调用对象的公有成员方法来访问

    公有属性可以公开使用,既可以在类的内部访问,也可以在外部程序中使用

    ----------------------------------------------------

    使用下划线作为变量名和方法名前缀和后缀,表示类的特殊成员

    _xxx 保护成员,只有类对象和子类对象才能访问

    __xxx__ 系统定义的特殊成员

    __xxx 类中的私有成员

    # 特殊成员定义与访问
    class Fruit:
        def __init__(self):
            self.__color='red'                  # 私有成员
            self.__type__='rectangle'           # 特殊成员
            self.price = 1                      # 公有成员
    
    apple = Fruit()
    print(apple.price)  # 对象公有数据成员的值
    
    out:
    1
    apple.price = 2   # 修改对象公开数据成员的值
    print(apple.price)
    
    out:
    2
    
    apple.__type__ = 'Triangle'   # 修改特殊成员的值    
    print(apple.__type__)    
    
    out:
    Triangle
  • 相关阅读:
    hive参数配置及任务优化
    python基础篇_002_基础数据类型
    python基础篇_001_初识Python
    Java 修饰符
    Java 构造代码块
    Java static 关键字
    Java 继承
    37 自定义异常
    36 异常
    35 异常
  • 原文地址:https://www.cnblogs.com/feinaio2017/p/8933758.html
Copyright © 2011-2022 走看看