如何使变量可以用于整个工作表,但不能用于不同的工作表?

2024-10-01 22:36:27 发布

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

我有一个类,当我调用这个类时,我定义变量。但如果我在一个地方定义它们,它们就不会在另一个地方定义。我试着使用globals,但是当我调用这个类时,它说它们已经被定义了。你知道吗

我如何只在一个函数中定义它,并使该定义对其他函数起作用?你知道吗

这是我的密码:

第1页:

class Addresses():        



       def __init__(self, address, variableName):

             if header == address:
                   <do something>
             if header == variableName:
                   <do something>


       def calculateAddress(self):
               if header == address:
                    <calculate address>
               if header == variableName:
                    <store it>

第2页:

registers = Addresses(address = 'Base Address', variableName = 'Variable Name')

registers.calculateAddress()

这是我得到的错误:

Traceback (most recent call last):
  File "sheet 2", line 227, in <module>
   registers.calculateAddress()
  File "sheet 1", line 286, in calculateAddress
    if header == address:
NameError: global name 'address' is not defined

Tags: 函数selfif定义addressaddressesdef地方
1条回答
网友
1楼 · 发布于 2024-10-01 22:36:27

必须使用分配给实例的实例变量。后来就这样称呼他们

class Addresses():        

   def __init__(self, address, variableName):

         self.adress = adress
         self.variableName = variableName

         if header == address: # you can use address of self.address here
               <do something>  # One may prefer self.address for continuity in the code
         if header == variableName: 
               <do something>

   def calculateAddress(self):

           if header == self.address:
                <calculate address>
           if header == self.variableName:
                <store it>

这与在没有任何类的函数中定义变量是一样的。定义时必须考虑该函数的范围。哪一个OOP展示了克服这个问题的好方法。你知道吗

相关问题 更多 >

    热门问题