python中的类中的类-访问motherclass

python中的类中的类-访问motherclass,python,class,Python,Class,我正在研究计算机代数,我正在尝试为字段创建一个接口。 尽量不要让你对所有细节感到厌烦这就是我努力工作的目的: class PrimeField(): prime = 2 def __init__(self,p): self.prime = p class element(): def __init__(self,n): self.descriptor = n def someFunctionOfNandP(self):

我正在研究计算机代数,我正在尝试为字段创建一个接口。 尽量不要让你对所有细节感到厌烦这就是我努力工作的目的:

class PrimeField():
  prime = 2
  def __init__(self,p):
     self.prime = p

  class element():
     def __init__(self,n):
        self.descriptor = n

     def someFunctionOfNandP(self):
         return 2*self.n % self.parrent.p

  field = PrimeField(7)
  el = field.element(5)
  print(el.someFunctionOfNandP())
我想实现的是PrimeField创建一个生成器,让元素(即对象)的函数依赖于来自的字段。 尽管我可以想到使用不同结构的变通方法(例如创建一个包含两个元素的通用元素类和一个初始化这些元素的字段中的函数),由于与基础数学相似,上面显示的行中的某些行具有优先权,并且该程序是为其他数学家编写的

可以这样做吗?如果可以,怎么做


谢谢

一种可能性是将
PrimeField
PrimeFieldElement
视为单独的对象:

class PrimeFieldElement():

    def __init__(self, p, n):
        self.p = p
        self.n = n

    def someFunctionOfNandP(self):
         return 2 * self.n % self.p


class PrimeField():
    prime = 2

    def __init__(self, p):
        self.prime = p

    def element(self, n):
        return PrimeFieldElement(self.prime, n)

field = PrimeField(7)
el = field.element(5)
print(el.someFunctionOfNandP())
这似乎与您最想要的匹配:每次调用
.element()
都将生成一个新元素,其中将存储
p
n
的值。还可以将
PrimeField
与它一起传递,并在
PrimeFieldElement
中访问它:

def element(self, n):
    return PrimeFieldElement(self, n)
连同:

class PrimeFieldElement():

    def __init__(self, field, n):
        self.field = field
        self.n = n

    def someFunctionOfNandP(self):
         return 2 * self.n % self.field.prime

element
PrimeField
之间有什么关系,需要在
PrimeField
的代码块中定义它?我仍在努力解决这个问题,但也许其中一个答案会有所帮助。O可能是一些带有
\uuuu元类的东西。
嵌套类python
搜索带来了很多有趣的想法/答案,而不是“不要这样做”。您的意思是
def someFunctionOfNandP(self):返回2*self.descriptor%self.parrent.prime
?是否
elementfield
需要访问
PrimeField
类属性或绑定实例属性?