AttributeError:'模块'对象没有属性'初始化'

时间:2015-04-15 17:25:33

标签: python

# randomize.py
import os
import sys 
import re
import shuti1
import json
import cProfile
import random

li = ["dog dot", "do don't", "dumb-dumb", "no match"]

for element in li: 
m = re.match("(d\w+)\W(d\w+)", element)
if m:
    print(m.groups())

for _, __ in enumerate(sys.path):
shuti1.initialize('Hello', '!', 'HackerEarth')
print __

while True:
li_random = random.choice(li)
print li_random
if li[0] in li_random:
    break
# shuti1.py
import sys 
import randomize
import collections
import math

from collections import Counter

class HackerEarth(object):
def __init__(self, name, role, hobby):
        self.name = name
        self.role = role
        self.hobby = hobby

def print_details(self):
    print "Name:", self.name
    print "Role:", self.role
    print "Hobby:", self.hobb

    cnt = Counter()
    for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
    cnt[word] += 1

def initialize(greet, character, company):
print greet, character, company

当我运行程序时,我得到了如下错误:

   Traceback (most recent call last):
   File "C:/Users/SAGAR/Desktop/randomize.py", line 5, in <module>
    import shuti1
   File "C:\Python34\shuti1.py", line 3, in <module>
    import randomize
   File "C:/Users/SAGAR/Desktop\randomize.py", line 18, in <module>
    shuti1.initialize('Hello', '!', 'HackerEarth')
   AttributeError: 'module' object has no attribute 'initialize'

1 个答案:

答案 0 :(得分:1)

我会猜测initializeHackerEarth课程的一部分,因为你没有做太多确认。如果是这种情况,initialize不是模块的一部分,它是类的一部分,所以你需要一个HackerEarth对象才能调用它。

如果不是这样的话,可能是Peter Wood提到的循环导入(抱歉,不知道如何标记!)。这意味着您要将shuti1.py导入randomize.pyrandomize.py导入shuti1.py。可以通过查看错误消息确认这一点:

  

文件&#34; C:/Users/SAGAR/Desktop/randomize.py",第5行,

     

import shuti1

     

文件&#34; C:\ Python34 \ shuti1.py&#34;,第3行,

     

导入随机化

最后,如果您使用IDE,则可能由IDE引起。 Pycharm要求所有导入的文件都在项目中或python目录的一部分。如果你能用其他两件事来解决这个问题,请检查类似的东西。

希望有所帮助