博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python程序设计——面向对象程序设计:类
阅读量:5030 次
发布时间:2019-06-12

本文共 2067 字,大约阅读时间需要 6 分钟。

理解面向对象

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

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

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:1apple.price = 2   # 修改对象公开数据成员的值print(apple.price)out:2apple.__type__ = 'Triangle'   # 修改特殊成员的值    print(apple.__type__)    out:Triangle

 

转载于:https://www.cnblogs.com/feinaio2017/p/8933758.html

你可能感兴趣的文章
HDU 6534 Chika and Friendly Pairs (树状数组 离散化 莫队)
查看>>
"this class is not key value coding-compliant for the key ..."问题的解决
查看>>
OpenCV2计算机编程手册(一)操作像素
查看>>
Linux常用命令
查看>>
2.2 搬移字段
查看>>
Zsh 5.0 已提供下载
查看>>
Apache POI 3.9 发布,性能显著提升
查看>>
reposurgeon 2.18 发布,版本控制历史记录编辑
查看>>
firefox插件介绍
查看>>
2014岁末分享:10本最新前端开发电子书【前端开发者的福音】
查看>>
<fzu1922>非主流
查看>>
10月9日至10月22日备忘录
查看>>
TJUSCSST第一次作业
查看>>
解决Only a type can be imported. * resolves to a package
查看>>
eclipse部分文件无法编译的一种解决办法
查看>>
I2C 方式
查看>>
angular.js 入门
查看>>
【学习笔记】 唐大仕—Java程序设计 第5讲 深入理解Java语言之5.4 对象清除与垃圾回收...
查看>>
内核源码分析之进程调度机制(基于3.16-rc4)
查看>>
InnoDB与Myisam的六大区别
查看>>