【发布时间】:2017-04-04 20:24:52
【问题描述】:
我有两个文件 f1.py 和 f2.py。
f1.py 包含一个类 C1。
f2.py 包含一个类C2,它继承了C1。
C1 包含一个构造函数
def __init__ (self, user_name, user_password, db_name):
self.user_name = user_name
self.user_password = user_password
self.db_name = db_name
&一个方法
def m1(self):
print user_name
我在f2 中创建了一个对象。
db3 = C2(user_name, user_password, db_name)
db3.conn_establish()
其中,所有传递的参数都被赋予了一些值
如果C2 与C1 存在于同一文件中。这不会返回任何错误。但是,由于C2 存在于另一个文件中。我收到一个错误
NameError: global name 'user_name' is not defined
为了克服这个问题,我必须将 m1 更改为:(只是我找到的一种解决方法)
def m1(self):
print self.user_name
为什么添加self 有效?
【问题讨论】:
标签: python class inheritance constructor