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