day23 面向对象 函数和方法区分
最近两周内容大概回顾:
# 文件操作 # # 模块:random,序列化模块,时间模块,collections,re,os,sys # 模块与包的概念和导入方法 # 写代码的规范 # 正则表达式 # 异常处理 # # 函数: # 函数的命名空间和作用域 # 内置函数 # 闭包 : 装饰器函数 # 生成器函数:生成器表达式,各种推导式,迭代器 # 匿名函数 # 递归函数 : 二分查找算法 #作业1 # 基础数据类型 # 文件操作 # 函数 # 模块 # 面向对象 # 网络编程(空) # 线程进程协程、IO多路复用(空) # 其他 # 序列化模块——shelve # import shelve # f = shelve.open('ff') # f['key'] = {'k1':'v1'} # f.close() # f = shelve.open('ff',flag='r') # 只读 # f['key'] = [1,2,3] # f.close() # f = shelve.open('ff') # print(f['key']) # f.close()
今天内容概要:
# 认识面向对象
# 了解面向对象编程
# 基础的 类 对象的语法
初识面向对象:
#生命值 100 #攻击力 10 #名字 XXX #职业 XXX def Person(life_value,aggr,name,job): def attack(dog): print('%s 攻击了 %s' % (person['name'], dog['name'])) dog['life_value'] = dog['life_value'] - person['aggr'] person = { #模子 'life_value':life_value,#生命值 'aggr':aggr, #aggressive攻击力 'name':name, 'job' : job, 'attack' : attack } return person boss_gold = Person(1000,2,'金老板','boss') alex = Person(250,250,'alex','big_boss') # print(boss_gold['life_value']) def Dog(name,life_value,aggr,kind): def bite(person): print('%s 咬了 %s' % (dog['name'], person['name'])) person['life_value'] -= dog['aggr'] dog ={ 'name':name, 'life_value':life_value, 'aggr' : aggr, 'kind' : kind, 'bite' : bite } return dog alph = Dog('alphgou',10000,999,'AI') flower = Dog('小花',150,300,'2ha') alph['bite'](boss_gold) alex['attack'](flower) #这就是面向对象编程 #面向对象编程 是一种思想 #对象就是具体的拥有准确属性值的一些变量 #类:一类具有相同属性和方法的事物 #字典 _ 类 d1 = {'k1':'v1'} #对象 #动物园:老虎 狮子 猴 # attack(boss_gold,flower) # print(flower['life_value']) # bite(alph,alex) # print(alex['life_value'])