Python 的面向对象和其他语言不一样,python的class术语与c++有一定区别,与 Modula-3更像。
1 设计面向对象
设计分成下面的两个方面,一定要先设计,找好对象,找类
1 面向对象程序设计 OOD
- 找对象-->找类(归纳对象共同的特征和技能,每个对象独有的特征)
2面向对象程序编程OOP
- 先定义类--实例化对象
1.1 面向对象的作用可扩展性性强,增加属性,但是导致了可控性差。
1.2 什么是对象,什么是类python中一切皆为对象,且python3统一了类与类型的概念,类型就是类。如dict
用面向对象设计一个游戏,每个玩家所有一个英雄,每个英雄都有自己的特征和技能,特征和技能的结合体就是一个对象。
从一组对象中提取相似的部分就是类,类是所有对...
Python 面向对象(一)
应用场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等都是面向对象的程序设计大显身手的好地方
面向对象中都是类,通过程序中的类来实现对象
Python3已经把类型和类整合起来了 ,int 等都是类。
现实生活中,是现有对象后有类。在程序中是先有类后有对象。
使用类需要实例化和引用类的变量和类的函数12345678class Garen: camp='Demacia' # 这是类的共同特征 def attack(self): # 定义的类的方法,需要参数 print('attack')obj = Garen()# print(obj)# print(Garen.camp) # 打印类的特征Garen.attack...
Python递归
递归
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
``pythondef age(n): if n == 1: return 10 # 结束条件 else: return age(n-1) + 2 # 调用函数本身print(age(5))123456789101112131415161718192021222324252627282930313233结果:18**递归的原理**) # 取绝对值print(abs(0)) # 取绝对值
allall内部只有一个元素,内部是一个可迭代的对象
元组 列表形式的1234print(all([])) # 里面是可迭代对象 空返回trueprint(all((1,''))) # 里面是可迭代对象 依次取内部的x进行bool运算,只有所有的全部为True 这里字符串为空,返回falseprint(all((1,[]))) # 里面是可迭代对象 依次取内部的 空是falseprint(all((1,2,' ',None))) #字符串的空格是True None是false
生成器方式:12(for i in range(100)) # 这是...
Python协程函数
1 协程函数1.1 协程函数理解
>协程函数就是使用了yield表达式形式的生成器
12345678def eater(name): print("%s eat food" %name) while True: food = yield print("done")g = eater("gangdan")print(g)
结果:generator object eater at 0x00000000028DC048这里就证明了g现在就是生成器函数
1. 2 协程函数赋值过程用的是yield的表达式形式
要先运行next(),让函数初始化并停在yield,相当于初始化函数,然后再send() ,send会给yield传一个值** next()和sen...