我的python脚本出现了一个奇怪的问题,该文件是红色的两次。
脚本:
import platform as serverPlatform
class platform:
@staticmethod
def kernel():
return serverPlatform.release()
@staticmethod
def cpu():
with open('/proc/cpuinfo', 'r') as f:
print("x")
for line in f:
if line.strip():
if line.rstrip('\n').split(':')[0].startswith('model name'):
model_name = line.rstrip('\n').split(':')[1]
print platform.cpu()
上面的代码打印" x"两次:
[root@localhost lib]# python platform.py
x
x
但是,如果我删除该类并直接运行cpu()
方法中的代码,则会打印出来" x"只有一次。(没有类的python脚本)
with open('/proc/cpuinfo', 'r') as f:
print("x")
for line in f:
if line.strip():
if line.rstrip('\n').split(':')[0].startswith('model name'):
model_name = line.rstrip('\n').split(':')[1]
在我的初始剧本中我做错了什么,为什么要打印我" x"两次?提前致谢
更新
好的,我意识到我的错误是愚蠢的,因为听起来我在包含自定义类名平台的脚本中导入了模块平台。所以我将课程名称从平台更改为平台
import platform as serverPlatform
class platforms:
@staticmethod
def kernel():
return serverPlatform.release()
@staticmethod
def cpu():
with open('/proc/cpuinfo', 'r') as f:
print("x")
for line in f:
if line.strip():
if line.rstrip('\n').split(':')[0].startswith('model name'):
model_name = line.rstrip('\n').split(':')[1]
print platforms.cpu()
答案 0 :(得分:2)
导入python脚本时,它将执行所有语句,如函数声明,类声明和可执行语句(如print)。因此,当您导入flatform时,它将执行flatform.cpu()
一次。以及从您导入的文件中再打一次。