chur_z 2022-07-05 16:48 采纳率: 100%
浏览 14
已结题

python函数调用问题

python问题
在c里面调用d.py的d函数,为什么会把函数方法外的print打印出来啊。不应该只调用方法缩进后的的内容吗

img

img

d.py
print("这个不是函数d的啊")
def d():
print("d")
print("d")

print("这个不是函数d的啊")

d()

def e():
print("e")

c.py
def c():
print("c")

#一组办法

import testPage2.d

testPage2.d.d()

#另一组办法
from testPage2.d import d,e
d()

e()

调用结果
G:\pythonObject\venv\Scripts\python.exe G:/pythonObject/testPage2/c.py
这个不是函数d的啊
这个不是函数d的啊
d
d

Process finished with exit code 0

不应该是只有
d
d
这个嘛

  • 写回答

1条回答 默认 最新

  • 於黾 2022-07-05 16:55
    关注

    因为方法外的print相当于静态代码,只要一import就直接执行了
    如果你希望被调用的代码块中的静态代码不要执行,而只在代码块独立执行时才执行
    那么加个if条件
    if __name__=='__main__':

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月13日
  • 已采纳回答 7月5日
  • 创建了问题 7月5日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度