python全局变量/java python翻译
我是python新手,开始将一段Java代码转换为python 我的建议是:在python中模仿Java静态块python全局变量/java python翻译,java,python,Java,Python,我是python新手,开始将一段Java代码转换为python 我的建议是:在python中模仿Java静态块 class ConfigurationManager: try: readIn = open('C:/Users/george/Desktop/hello.txt','r') # readIn = open('./resources/my.properties','r') except Exception as e: pr
class ConfigurationManager:
try:
readIn = open('C:/Users/george/Desktop/hello.txt','r')
# readIn = open('./resources/my.properties','r')
except Exception as e:
print('except:',e)
finally:
if readIn:
readIn.close()
def read(self):
print(readIn.read())
con = ConfigurationManager()
con.read()
得到:
D:\Python27\python.exe D:/laotang/session/conf/ConfigurationManager.py
回溯(最近一次调用上次):文件
“D:/laotang/session/conf/ConfigurationManager.py”,第18行
con.read()文件“D:/laotang/session/conf/ConfigurationManager.py”,第14行,已读
打印(readIn.read())名称错误:未定义全局名称“readIn”
原始Java代码:
static {
try {
InputStream in = ConfigurationManager.class
.getClassLoader().getResourceAsStream("my.properties");
prop.load(in);
} catch (Exception e) {
e.printStackTrace();
}
}
有人请帮忙修复它,谢谢Python主要是一种与Java不同的脚本语言。Java是一种面向对象的语言。因此,从java代码转换到python代码时有一些区别。但是python也支持类概念。在您的情况下,工作代码是
class ConfigurationManager:
def read(self):
try:
readIn = open('C:/Users/george/Desktop/hello.txt', 'r')
# readIn = open('./resources/my.properties','r')
print(readIn.read())
except Exception as e:
print('except:', e)
finally:
if readIn:
readIn.close()
con = ConfigurationManager()
con.read()
但这并不是满足您需求的最佳python代码。我的观点是,首先,您应该学习python基础知识,而不是将java代码转换为python我个人发现GeksFureKE.ORG在解释问题上很糟糕,而且他们的代码包含了一些非常糟糕的实践,至少对于C++来说是这样。