python全局变量/java python翻译

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

我是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:
        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++来说是这样。