让我们看一下主脚本:
#!/usr/bin/env python
import cl1
import cl2
A = cl1.First()
A.one()
B = cl2.Second()
B.two()
print('\nRep from First class: %sRep from Second class: %s\n' % (A.rep1, B.rep2))
First
类文件是:
class First:
def one(self):
self.rep1 = 'Rep1.\n'
而Second
类文件包含:
from cl1 import First
class Second(First):
def two(self):
self.rep2 = 'Rep2'
如何从类Second
访问类First
中名为rep1
的变量
我的意思是-比如:
先从cl1导入
class Second(First):
def two(self):
self.rep2 = 'Rep2'
self.l = First()
self.l.one()
print('From First: %s' % self.l.rep1)
这将起作用-但我只是再次创建First
类对象,因此-这不是继承:
$ ./main.py
From First: Rep1.
Rep from First class: Rep1.
Rep from Second class: Rep2
我想用这样的方法:
from cl1 import First
class Second(First):
def two(self):
self.rep2 = 'Rep2'
self.rep1 = First.rep1
print('From Second: %sFrom First: %s' % (self.rep2, self.rep1)
Python 2.7版
另外,我试着用super(Second, self)
等来“玩”,但没有成功
你不需要做什么特别的事。只要从
Second
的方法中访问self.rep1
,就会得到值。当然,这个值仍然需要在那个特定的对象中设置,所以如果您有ob = Second()
,您首先必须调用ob.one()
你可以尝试以下方法:
所发生的事情是
rep1
将不存在至少您首先使用了方法one()
。 您可以这样做:您可以简单地访问
rep1
,就好像它是由于继承而在Second
类中定义的一样相关问题 更多 >
编程相关推荐