【发布时间】:2018-12-28 15:09:50
【问题描述】:
我正在使用print 函数从另一个 python 模块的类中打印一个字段,它会打印该字段两次。
我有两个模块:
main.py:
from statics import RiskyCars
class Car:
def __init__(self, name):
self.name = name
# init
RiskyCars()
print(RiskyCars.risky_cars[0].name)
statics.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)
它只打印一次。
为什么会这样?
【问题讨论】:
-
有几件事让我觉得很奇怪:
__init__()被标记为静态,而你import来自 main。基本上:这两件事都不做。
标签: python python-2.7 pycharm