Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Module and Class - AttributeError: module has no attribute

I'm new to python and I'm trying to create a module and class.

If I try to import mystuff and then use cfcpiano = mystuff.Piano(), I get an error:

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

If I try from mystuff import Piano I get:

ImportError: cannot import name 'Piano'

Can someone explain what is going on? How do I use a module and class in 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)

Test.py

import mystuff 
from mystuff import Piano 
cfcpiano = mystuff.Piano()
cfcpiano.printdetails()
like image 756
Earl Avatar asked Nov 08 '22 23:11

Earl


1 Answers

If you want to create a python module named mystuff

  1. Create a folder with name mystuff
  2. Create an __init__.py file
#__init__.py

from mystuff import Piano #import the class from file mystuff
from mystuff import timesfour,printhello #Import the methods
  1. Copy your class mystuff.py to the folder mystuff
  2. Create file test.py outside the folder(module) mystuff.
#test.py
from mystuff import Piano
cfcpiano = Piano()
cfcpiano.printdetails()
like image 140
Kajal Avatar answered Dec 05 '22 06:12

Kajal