今天主要介绍的知识点为Python的类与装饰
1.装饰
1.1 未加装饰的例子
#肥牛
def feiniu(n): print("肥牛:¥22") return n+22
#双拼
def shuangpin(n):print("双拼:¥20")return n+20
#锅底
def guodi():print("锅底:¥14")return 14print("共消费"+str(shuangpin(feiniu(guodi()))))代码的运行结果:
锅底:¥14 肥牛:¥22 双拼:¥20 共消费56
这段代码虽然可以将这三个菜品输出,并计算出他的结果,但是套餐的搭配太过于死板,并不实用。
这时就可以用到我们的python装饰。
1.2
装饰的关键字就是@
import types #因为之后要运用这个types去做方法的判断,所以要导包
#肥牛
def feiniu(n):print("肥牛:¥22")if type(n)==types.FunctionType: #需要嵌套调用,传进的参数却变成了函数,所以在进入函数的时候 #要用if判断传进来的参数的类型return n()+22return n+22#双拼
def shuangpin(n):print("双拼:¥20")if type(n)==types.FunctionType: #同上 return n()+20return n+20
#锅底
@feiniu 运用装饰,肥牛@shuangpin 运用装饰,双拼def guodi():
print("锅底:¥14")return 14print("共消费:"+str(guodi))代码的运行结果:
锅底:¥14 肥牛:¥22 双拼:¥20 共消费56加完装饰后,就可以很好的解决了传统模式所不能达到的效果。
2.类
2.1 Python定义类的方式
声明类的方式:class 类名
2.2 定义类于方法的示例
class person: name="李四" __myname=None #在属性前加上__相当于私有化了这个属性。 def __init__(self,myname,name): #python的self是于java中的this意义差不多,但是self必须声明在参数中 self.name=name self.__myname=myname print(self.__myname) def show(self): p.__aa() print(self.name) def __aa(self): print("吃饭ing") p=person("张三","王五") p.show() print(p.name)输出结果:
李四吃饭ing
王五 王五Python的类对于学过JAVA的人来说比较简单,因为他与JAVA的定义方式大致相同,只是需要注意一些细节。1.python对于类没有访问修饰符的概念
2.对于JAVA中的this关键字与Python的self关键字一样,只是self需要在方法的参数中声明,否则会报错。
3.还有一点就是对于对象的调用,Python是不需要new这个关键字的。