peicd 发表于 2021-4-21 22:41:33

import覆盖的问题

本帖最后由 peicd 于 2021-4-21 22:58 编辑

请问大神一个问题:
一、新建一个x.py,里面建立两个函数
def b():
    a()

def a():
    print(2222222)
二、然后将这个x.py import 进去另一y.py里面
from x import *
def a():
    print(3333333)

b()
a()

三、运行y.py 结果如下
2222222
3333333

求助:import进去后重新编写会对a()进行覆盖,但我在y.py 对a()函数进行了修改,并不影响x.py里面的b()函数,怎么样才能对a()进行覆盖,或者本身这种操作就是不对的,需要用其他方法进行以免造成命名混乱?

as8282530 发表于 2021-4-22 01:02:37

定义一个class类

wp231957 发表于 2021-4-22 07:53:58

也没啥问题,此a非彼a,不过实际操作中,都是为了避免尴尬,函数名会起的比较清晰,而不会起很多重名的,给自己找不自在

peicd 发表于 2021-4-22 08:18:31

wp231957 发表于 2021-4-22 07:53
也没啥问题,此a非彼a,不过实际操作中,都是为了避免尴尬,函数名会起的比较清晰,而不会起很多重名的,给 ...

老师你好,从结果看我知道此a非彼a,但我是想让此a变成彼a,怎么操作?

wp231957 发表于 2021-4-22 09:11:32

peicd 发表于 2021-4-22 08:18
老师你好,从结果看我知道此a非彼a,但我是想让此a变成彼a,怎么操作?

说说你想实现神马呢为啥要覆盖

peicd 发表于 2021-4-22 11:21:06

wp231957 发表于 2021-4-22 09:11
说说你想实现神马呢为啥要覆盖

发现一个代码如下:
from x import *
def a():
.......
if __name__ == "__main__":
run()

在整个模块里面都没有对run函数的定义,这个run的定义应该是在import导入的模块x里面的,猜想,run函数里面应该有对a()的运行条件。怎么让a()顺利运行起来?
页: [1]
查看完整版本: import覆盖的问题