如何创建python类以在init上创建对象

2024-09-27 23:19:03 发布

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

我需要在python中创建以下对象

ldapdict = {
      'objectclass': [b'inetOrgPerson', b'person'],
      'cn': [b'George Orwell'],
      'givenName': [b'George'],
      'sn': [b'Orwell'],
      'uidNumber': [b'1984'],
      'gidNumber': [b'1984'],
      'mail': [
      b'george.orwell@example.com',
      b'big.brother@example.com',
  ],
  }

我有以下代码,但它不工作,我无法找出它

cat ./main.py
#!/usr/bin/python

from ldap import LdapEntry

#ldapdict = {
#      'objectclass': [b'inetOrgPerson', b'person'],
#      'cn': [b'George Orwell'],
#      'givenName': [b'George'],
#      'sn': [b'Orwell'],
#      'uidNumber': [b'1984'],
#      'gidNumber': [b'1984'],
#      'mail': [
#      b'george.orwell@example.com',
#      b'big.brother@example.com',
#  ],
#  }

ldapdict = dict()

e = LdapEntry(ldapdict)

assert(e.cn == 'George Orwell')
assert(e.uidNumber == 1984)
assert('big.brother@example.com' in e.mail)
assert(len(e.mail) == 2)


cat ldap.py
#!/usr/bin/python

class LdapEntry:

    my_dict = {'objectclass':''}

    def __init__(self, objects):
        self.objectclass = objects.objectclass
        self.cn = objects.cn
        self.givenName = objects.givenName
        self.sn = objects.sn
        self.uidNumber = objects.uidNumber
        self.gidNumber = objects.gidNumber
        self.mail = objects.mail

这是错误的

./main.py
Traceback (most recent call last):
  File "./main.py", line 20, in <module>
    e = LdapEntry(ldapdict)
  File "/home/ec2-user/ldap.py", line 8, in __init__
    self.objectclass = objects.objectclass
AttributeError: 'dict' object has no attribute 'objectclass'

更新

所以我就这样改了

self.objectclass = ['inetOrgPerson','person']
        self.cn = 'George Orwell'
        self.givenName = 'George'
        self.sn = 'Orwell'
        self.uidNumber = '1984'
        self.gidNumber = '1984'
        self.mail = ['george.orwell@example.com', 'big.brother@example.com']

但它与

$ ./main.py
Traceback (most recent call last):
  File "./main.py", line 23, in <module>
    assert(e.uidNumber == 1984)
AssertionError

Tags: pyselfcomobjectsexamplemailcnsn

热门问题