如何使用函数改变返回函数/改变变量?

2024-09-22 10:20:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何从一个函数中得到一个变化的变量。你知道吗

我试图:

class Text():
  File=open("SomeFile.txt", "r")
  MyText=(File.read()+MoreText)
  def AddMoreText():
    MoreText=("This is some more text")

在意识到我需要再次运行MyText变量之前,我不知道该怎么做。你知道吗

我打算通过运行print(Text.MyText)来调用这个文本,它在运行Text.AddMoreText()之后不会更新

然后我试着:

class Text():
  global MoreText
  File=open("SomeFile.txt", "r")
  def ChangeTheText():
    return(File.read()+MoreText)
  MyText=ChangeTheText()
  def AddMoreText():
    MoreText=("This is some more text")

我不知道的是返回函数保留了它的值,所以当我运行print(Text.MyText)Text.AddMoreText()print(Text.MyText)它两次显示相同的文本。你知道吗


Tags: 函数texttxtreadisdefopenthis
1条回答
网友
1楼 · 发布于 2024-09-22 10:20:35

我想你想要的是:

class Text:
    def __init__(self):
        self.parts = []
        with open('SomeFile.txt', 'r') as contents:
            self.parts.append(contents.read())
        self.parts.append('More text')

    def add_more_text(self, text):
        self.parts.append(text)

    @property
    def my_text(self):
        return ''.join(self.parts)

这使得.my_text成为一个动态的属性,它将在每次.my_text被检索时重新计算。你知道吗

相关问题 更多 >