def test_decorator(): import m1 old = m1.foo def bar(): print('bar') old() m1.foo = bar m1.foo()
from m1 import foo foo()
# 不管用什么样的编程语言来写代码,给变量、函数起名字都是一个让人头疼的问题,因为我们会遇到命名冲突这种尴尬的情况。最简单的场景就是在同一个.py文件中定义了两个同名的函数, # 怎么解决命名冲突呢?答案其实很简单,Python中每个文件就代表了一个模块(module), # 我们在不同的模块中可以有同名的函数,在使用函数的时候我们通过import关键字导入指定的模块再使用完全限定名的调用方式就可以区分到底要使用的是哪个模块中的foo函数 import m1 import test as t def foo(): print('main foo') foo() m1.foo() t.foo()