内容目录
In [12]:
def print_info():
print("This is a function")
myprint = print_info
myprint()
This is a function
对象可以添加到集合对象中¶
In [14]:
object_list = list()
object_list.append(myprint)
for i in object_list:
print(i)
<function print_info at 0x1197644a0>
可以作为参数传递给函数¶
> 装饰器是Python中一种强大且灵活的功能,它允许你在不修改原始函数代码的情况下,对函数的行为进行扩展或修改。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。 主要作用包括:
- 代码复用和简化:通过装饰器,可以将一些与函数功能无关的代码抽离出来,提高代码的可读性和可维护性。
- 添加额外功能:装饰器可以在不改变函数结构的情况下,为函数添加额外功能,比如日志记录、性能分析、权限检查等。
- 动态修改函数行为:装饰器可以在运行时动态修改函数的行为,使得函数的功能更加灵活和多样化。
- 包装器:装饰器实际上是一个包装器,它可以在被装饰的函数前后执行代码,实现对函数执行过程的控制。 总之,装饰器为Python提供了一种优雅的方式来修改、扩展或包装函数的功能,使得代码更加模块化、可复用和易于维护。
In [16]:
def my_wrapper(func_obj):
def wrapper():
print("这是一个装饰器...")
func_obj() # 调用外部函数所接收的函数对象
return wrapper # 外部函数返回的是内部函数对象
@my_wrapper
def print_wrapper():
print("这是一个测试函数...")
# func_obj = my_wrapper(print_wrapper) #将定义的普通函数传递给my_wrapper
# func_obj()
print_wrapper()
这是一个装饰器... 这是一个测试函数...
type、object和class的关系¶
1、Python中所有的类是由类型类创建的 2、Python中的类型都是由Type类创建的
In [5]:
a = 1
b = 'abc'
print(type(a))
print(type(b))
print(type(str))
class Student():
pass
stu = Student()
print(type(stu))
print(type(Student))
<class 'int'> <class 'str'> <class 'type'> <class '__main__.Student'> <class 'type'>
3、探究Python中的object type创建了所有的对象,Object也是一个对象
In [11]:
print(int.__bases__)
print(type(object))
print(type.__bases__)
print(object.__bases__)
(<class 'object'>,) <class 'type'> (<class 'object'>,) ()
总结: 1、Type创建了所有的对象,也包含类对象(object) 2、Type在创建Object基类同时也继承了object 3、Type是由自创创建的
In [ ]: