Как я могу создать несколько классов на разные файлы в Pycharm - PullRequest
1 голос
/ 23 апреля 2019

У меня есть 2 файла. Я хочу создать каждый класс только для одного файла, но у меня появляется ошибка

Файл Devolper.py

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

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

когда я запускаю этот код в файле Devolper.py

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

я получаю ошибку

/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

Но если я скопировал класс 'Devolper' в Employee.pyфайл и исполняемый код работают без ошибок

1 Ответ

0 голосов
/ 23 апреля 2019

Если два файла в одной папке, импортируйте их, как указано ниже, если нет, проверьте этот сайт

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__)

выход:

{'fname': 'Hussin', 'lname': 'Mahmoud', 'pay': 190, 'email': 'hmahmoud@smartsystemeg.com', 'raise_amount': 1.4, 'pro_lang': 'java'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...