如何使用我在其他函数中创建的类函数中的变量,而不使用global
和return
?还有其他一些方法吗?
class functions:
def func1():
x=[1,2]
def func2():
print x
func1()
func2()
输出:
[1,2]
真正的问题:
class WebPage:
def __init__(self, filename):
self.filename=filename
def process(self):
toproc=open(self.filename,'r')
lines=toproc.readlines()
for i in range(len(lines)):
lines[i] = lines[i].rstrip()
head=[]
body=[]
process....
head=[headline]
body=[sitebody]
def printedheadbody:
print head
print body
答案 0 :(得分:2)
使它们属性并使用self.head,self.body,你也不需要调用readlines,你可以直接遍历文件对象并在你想要去除时调用line.rstrip()
。您还应该从python2中的对象继承以支持新的样式类。
class WebPage(object):
def __init__(self, filename):
self.filename = filename
self.head = []
self.body = []
def process(self):
with open(self.filename) as f:
for line in f:
# use self.head,self.body
def printedheadbody(self):
print self.head
print self.body
在您的方法中不使用self
,您基本上拥有静态方法,这些方法不允许您使用self
引用属性。
要访问这些方法,请按顺序创建实例并调用方法:
w = WebPage("foo.html")
w.process()
w.printedheadbody()
您也不需要print方法,您可以使用实例访问属性并只打印每个:
w = WebPage("foo.html")
w.process()
print(w.head)
print(w.body)
也可以在流程方法中创建属性:
def process(self):
self.head=[]
self.body=[]
with open(self.filename) as f:
for line in f:
....
但是你需要确保在尝试访问它们之前调用了进程。
答案 1 :(得分:1)
您需要在课程中使用quantity(DECIMAL(8,1))
。这个变量就是它自己的一个实例。
self