大纲:
类:
继承:多继承
类中所有的__开头的方法都是内置的来自于父类
对象:
创建对象和调用函数一样
方法:
类方法
对象方法
构造方法
静态方法
装饰:
@property 负责把一个方法变成属性调用的
静态方法(staticmethod)
类方法(classmethod)
实例方法(instance method)
函数和方法的区别在与方法是在类里定义 函数不必代码在方法中定义,
可以在代码的任何地方调用,方法只能在类中调用.
函数:独立定义,独立调用
方法:依赖定义,依赖调用
变量作用域:
L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
什么情况下产生新的作用域
def
class
g = 1 #全局的
def fun():
g = 2 #局部的
return g
print fun()
# 结果为2
print g
# 结果为1
类和对象:
类的创建:
class person: #类
def a(): # 方法
类的调用:
class person : #创建一个类
def a(self,name): #创建一个方法 ,self代表的是类的实例如java中的this,然后放一个名字为name的参数。
print(name) #输出name
c = person() #调用类c是对象
c.a("456") #找到a方法给name赋值123
person().a("123") #也可以使用这个类()直接点a方法。
类的构造方法:
类的构造方法都是def init():
class person: #创建一个类
def __init__(self, first_name, last_name): #创建一个构造方法
print(first_name,last_name)
person("123","456")
装饰:
一个简单的使用装饰的代码
一个火锅店,首先调用底料,然后其他的顺序随便。
import types #导types包
def jingpinfeiniu(n): #创建函数
print("金品肥牛:¥38")
if type(n) == types.FunctionType:
return n() + 38
return n + 38
def shucai(n):
print("什么蔬菜双拼:$7")
if type(n) == types.FunctionType:
return n() + 7
return n + 7
@shucai #给底料装饰
@jingpinfeiniu #给底料装饰
def mala():
print("麻辣锅底:$12")
return 12
# shcai(jingpinfeiniu(mala))
# qian=shucai(jingpinfeiniu(mala())) 给底料装饰代码的执行是这样的。
print("共消费:" + str(mala))
对象返回金钱然后作为上一个的属性。
函数作为参数:回调