Python学习笔记-17.09.13
函数 装饰 @
装饰是什么呢?
装饰本质上是一个Python函数,它可以使一个函数在不做代码改动的前提下,实现更多的功能,它的返回值也是一个函数。通常用于事务处理等事件,减少了大量的代码重用。
import types
def z1(n):
print("z1:14")
if type(n) == types.FunctionType:
return n()+14
return n+14
def z2(n):
print("z2:22")
if type(n) == types.FunctionType:
return n()+22
return n+22
@z2
@z1
def z3():
print("z3:30")
return 30
print(z3)
上面z1和z2就是带参装饰器,通过@使用,使z3有了z1和z2的功能。
因为装饰器的返回值也是个函数,而我们使用了2个装饰器,所以在z1和z2里面
使用了type模块来进行类型对比
变量
class person():
#name ="zhangsan" #字段,等同于java成员变量
#name = None
#__开头的方法和变量是受保护的,外部不可调用
def __myshow(self):
print("!!")
def __init__(self,name=None):
self.name = name
self.__myshow()
def show(self,s): #this
print(self.name,s)
p = person("ls")
p.show("sssss")
p.name="zs"
print(p.name)
因为Python中变量直接赋值就能使用,所以当我们想要一个预留字段的时候,可以使用
name = None来定义;
以__开头的方法和变量是受保护的,外部不可调用,可以在内部调用
__init__()方法也就是类的构造方法,第一个参数self也就是实例本身,通过self.字段来进行初始化操作,
大致与Java相同
面向对象编程大纲
类
多继承
类中所有的__开头的方法都是内置的方法,来自于继承的父类,不能被外部调用
对象
创建对象和调用函数一样
方法
类方法
实例方法
构造方法
静态方法