1

I have 2 files I want to create every class on only one file but I have get error

Devolper.py file

from venv.py.com.smart.pk.Employee import Employee
class Devolper(Employee):
    def __init__(self, fname, lname, pay,pro_lang):
        super.__init__(fname, lname, pay)
        self.pro_lang=pro_lang


Employee.py file

import datetime

class Employee:
   # raise_amount = 1.4
   num_of_emp = 0

   def __init__(self, fname, lname, pay):
       self.fname = fname
       self.lname = lname
       self.pay = int(pay)
       self.email = str(fname).lower()[0] + str(lname).lower() + '@smartsystemeg.com'
       Employee.num_of_emp += 1
       self.raise_amount = 1.4

   def full_name(self):
       return '{} {}'.format(self.fname, self.lname)

   def applay_raise(self):
       return self.pay * self.raise_amount

   def set_amount(self,amt):
       self.raise_amount=amt
   @classmethod
   def newEmployee(cls,emp):
       fname, lname, pay = emp.split('-')
       return cls(fname,lname,pay)

   @staticmethod
   def isWorkday(day):
       if day.weekday()==4 or day.weekday==5:
           return False
       return True

when I run this code in Devolper.py file

emp1= Devolper("Hussin","Mahmoud",190,"java")
print(emp1.__dict__)

I have get error

/root/PycharmProjects/PythOOPTest/venv/bin/python /root/PycharmProjects/PythOOPTest/venv/com/smart/pk/Devolper.py
Traceback (most recent call last):
  File "/root/PycharmProjects/PythOOPTest/venv/com/smart/pk/Devolper.py", line 2, in <module>
    from venv.py.com.smart.pk.Employee import Employee
ModuleNotFoundError: No module named 'venv.py'

Process finished with exit code 1

But if I copied the class 'Devolper' in the Employee.py file and running code it is running well without any error

1 Answers1

2

If the two files in the same folder, imports it as follow, if not, please check this site

from Employee import Employee    


class Devolper(Employee):
    def __init__(self, fname, lname, pay, pro_lang):
        super().__init__(fname, lname, pay)            # it should be super()
        self.pro_lang=pro_lang


emp1= Devolper("Hussin", "Mahmoud", 190, "java")
print(emp1.__dict__)

output:

{'fname': 'Hussin', 'lname': 'Mahmoud', 'pay': 190, 'email': 'hmahmoud@smartsystemeg.com', 'raise_amount': 1.4, 'pro_lang': 'java'}
qinlong
  • 731
  • 8
  • 19
  • I already running it and get the same result but when I copied the class 'Devolper' in the Employee.py file – HussinMhmode Apr 23 '19 at 14:42
  • The two lines with comments differ from your code. If copy the 'Devolper' in the Employee.py file, you don't need "from Employee import Employee" line. I have tried the two methods, both gave me the right results. – qinlong Apr 23 '19 at 14:44