python是一门面向对象编程语言,其中编程方式分为三种范式:
1、面向过程编程
2、函数式编程
分为两种:数学层次的编程与python函数式编程
3、面向对象编程
对象是由类产生的具体存在
6.1: 类与对象
什么是类:
类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念
什么是对象:
对象:就是基于类而创建的一个具体的事物(具体存在的),也是特征和动作整合到一起。
面向对象设计: 把一类事物的相同的数据和动作整合到一起,即是面向对象设计
def Botany(name,variety,type): # 特征,名称,品种,类型 def init(name,variety,type): Bot = { 'Name':name, 'variety':variety, 'type':type, 'see':see } return Bot # 动作,查看一下它 def see(Botany): print('这是一朵 %s花' %Botany['Name']) return init(name,variety,type) fy=Botany('玫瑰','花','观赏类') print(fy) fy['see'](fy) 结果: {'Name': '玫瑰', 'variety': '花', 'type': '观赏类', 'see': <function Botany.<locals>.see at 0x00000000027CF840>} 这是一朵 玫瑰花
面向对象编程: 用定义类+实例/对象的方式去实现面向对象的设计
类:
class 类名: 经典类
pass
class 类名(object): 新式类
pass
# 在python3中,上述两种定义方式全都是新式类
class.__dict__ 查看类的属性字典
class te1: def __init__(self,name): self.name = name def play_tv(self): print('%s 正在看电视'%self.name) def in_name(): name=input('请输入名称: ') # 类的每个功能体都必须放开,init也可以定义,init建议只存放字典类数据 p1=te1(name) p1.play_tv() in_name()
结果:
请输入名称: xx xx 正在看电视
# hu = 'xa' class te1: hu = 'yy_hu' def __init__(self,name): self.name = name # 执行带.的都是执行类里面的函数,如果不带.那么它会直接执行 类 外的函数 print('>>>>>>>>>:%s'%hu) # 全局函数hu不加注释的时候 返回结果>>>>>>>>>:hu print('>>>>>>>>>:%s'%te1.hu) # 返回结果>>>>>>>>>:yy_hu p1=te1('xi')
实例:指的是类生成的某个对象,调用 __init__ 的过程
实例应当具备类的特征以及数据属性
实例没有函数属性, 函数属性只属于类
实例只建议使用查,不建议修改或增加函数。
# 创建一个类
class te1: # 创建构造方法 def __init__(self,name,age,gender): self.name = name self.age = age self.gender = gender huan=te1('huan',111,'man') # 查看类的字典 print(huan.__dict__) # {'name': 'huan', 'age': 111, 'gender': 'man'} # 修改 huan.age='222' print(huan.age) # 222 # 增加一个键值对 huan.__dict__['hu']='test' print(huan.__dict__) # {'name': 'huan', 'age': '222', 'gender': 'man', 'hu': 'test'} # 删除 del huan.age print(huan.__dict__) # {'name': 'huan', 'gender': 'man'}
原文地址:http://blog.51cto.com/xiong51/2053677