python程序设计——面向对象程序设计:类

理解面向对象python

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

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

python面向对象特性测试

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

python中,对象的概念很普遍,一切内容均可以称为对象this

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

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

1、类对象

1.类的定义与使用blog

# 定义类 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
相关文章
相关标签/搜索