我正在使用print
函数从另一个python模块的类中打印一个字段,它会打印该字段两次。你知道吗
我有两个模块:
主.py:
from statics import RiskyCars
class Car:
def __init__(self, name):
self.name = name
# init
RiskyCars()
print(RiskyCars.risky_cars[0].name)
静力学.py:
class RiskyCars:
@staticmethod
def __init__():
from main import Car
RiskyCars.risky_cars = []
RiskyCars.risky_cars.append(Car("car1"))
当我运行main.py
时,它会打印两次:
C:\Python27\python.exe C:/Users/myuser/PycharmProjects/Project1/main.py
car1
car1
但是如果我把断点放在print
函数前面:
# main.py
# init
RiskyCars() <--- break point
然后从终端手动运行:
print(RiskyCars.risky_cars[0].name)
它只打印一次。你知道吗
为什么会这样?你知道吗
Python将为您运行的主脚本
main
重命名为__main__
。所发生的情况是运行main
(称为__main__
),运行RiskyCars.__init__
,然后导入main
(称为main
)。因此脚本main
运行两次。你知道吗解决方法是将
main.py
重写为statics.py
到并创建一个名为
cars.py
的新文件相关问题 更多 >
编程相关推荐