def f(): print("f") def g(): print("g") g() f.g()
时间: 2024-03-16 16:45:53 浏览: 67
这段代码会报错,因为函数f()中定义了函数g(),但是没有返回g(),所以在f()外部无法调用g()。因此,f.g()会提示“'function' object has no attribute 'g'”错误。如果想要在外部调用g(),可以将g()作为f()的返回值,然后通过f()来调用g()。比如可以把代码改成这样:
```
def f():
print("f")
def g():
print("g")
return g
g = f()
g()
```
这样就可以在外部调用g()了。
相关问题
编写def bfs(G,v):
好的,下面是实现广度优先算法的代码:
```python
# 顶点v(编号)出发对图G进行广度优先遍历
def bfs(G, v):
# 初始化访问列表和队列
vis = [False] * G.verNum
q = Queue()
# 将起点v入队并标记为已访问
q.push(v)
vis[v] = True
# 循环直到队列为空
while not q.isEmpty():
# 出队一个顶点,并输出
cur = q.pop()
print(G.vertex[cur], end=" ")
# 遍历当前顶点的所有邻接点
for i in range(G.verNum):
# 如果邻接点未被访问,则入队并标记为已访问
if G.edge[cur][i] == 1 and not vis[i]:
q.push(i)
vis[i] = True
```
在这个实现中,我们首先初始化了一个访问列表和一个队列。然后将起点v入队并标记为已访问。接下来,我们循环直到队列为空,每次出队一个顶点并输出,然后遍历当前顶点的所有邻接点,如果邻接点未被访问,则入队并标记为已访问。最终,整个图就被广度优先遍历了一遍。
# D:\user\a.py def f(): print('AA',end='') # D:\user\b.py def g(): print('BB',end='') # D:\user\c.py from a import f from b import g def main(): f() g() print('CC') main()
这是一个Python程序,程序的功能是在控制台输出"AA"、"BB"和"CC",其中"f()"函数来自于"D:\user\a.py"文件,"g()"函数来自于"D:\user\b.py"文件。在"c.py"文件中,通过"from ... import ..."语句将函数引入到"c.py"文件中,并在"main()"函数中依次调用这两个函数,最后输出"CC"。运行该程序后,控制台会输出"AA"、"BB"和"CC"。