python 对象是什么概念

  • Post author:
  • Post category:python


在python里,


对象就是变量


,对象其实是一个指针,指向一个数据结构,数据结构里有属性,有方法。

def now():
    print('2015-3-25')
f = now
print(f.__name__)
print(f.c)

变量后面跟一个小数点,小数点后面就是它的属性或方法,带括号的是方法,不带的就是属性。

python中,


函数也是一个对象


,而且函数对象可以被赋值给变量。

现在来看下python的@语法,或称为装饰器(decorator)

def log(func):#再定义一个函数,只是这个函数的返回值是一个函数,或者可以认为这个函数返回了一个指针,这个指针指向函数wrapper
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper
@log
def now():
    print('2015-3-25')
f = now()#call now():
        #2015-3-25


把@log放到now()函数的定义处,相当于执行了语句,log(now),那这个是怎么执行的呢?

1. 把对象now当成入参传入函数log()

2. 执行return wrapper语句

3. 执行函数 wrapper(),根据函数 wrapper定义可看出此函数接受任意类型入参,

3.1 执行print(‘call %s():’ % func.__name__)语句,此时func代表的是主函数log(now)的入参对象now, 所以此处会打印对象

now的属性name= now

3.2 执行func(*args,**kw)=now(*args,**kw),y因为现在没有传参数进来,就是执行now(),

3.3 执行函数now(),print(‘2015-3-25’)



版权声明:本文为weixin_38145317原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。