我是python的新手,正在尝试创建模块和类。

如果我尝试导入mystuff然后使用cfcpiano = mystuff.Piano(),则会收到错误消息:

AttributeError: module 'mystuff' has no attribute 'Piano'

如果我尝试从mystuff import Piano获得:
ImportError: cannot import name 'Piano'

有人可以解释发生了什么吗?如何在Python中使用模块和类

mystuff.py
def printhello():
    print ("hello")

def timesfour(input):
    print (input * 4)


class Piano:
    def __init__(self):
        self.type = raw_input("What type of piano? ")

    def printdetails(self):
        print (self.type, "piano, " + self.age)

测试文件
import mystuff
from mystuff import Piano
cfcpiano = mystuff.Piano()
cfcpiano.printdetails()

最佳答案

如果要创建一个名为mystuff的python模块

  • 创建一个名称为mystuff的文件夹
  • 创建一个__init__.py文件
    #__init__.pyfrom mystuff import Piano #import the class from file mystufffrom mystuff import timesfour,printhello #Import the methods
  • 将您的类mystuff.py复制到文件夹mystuff
  • 在文件夹(模块)test.py之外创建文件mystuff
    #test.pyfrom mystuff import Pianocfcpiano = Piano()cfcpiano.printdetails()

  • 这将起作用。

    10-06 14:23