Импортирование класса из другого файла

С недавних пор изучаю Python и не совсем понимаю, как работают и формируются классы. Писал систему вычисления зарплаты по книге и пытался импортировать её в другой файл. Сама схема:

class Staff:
    def __init__(self, pPosition, pName, pPay):
        self.position = pPosition
        self.name = pName
        self.pay = pPay
        print("Creating Staff Object")

    def __str__(self):
        return "Position = %s, Name = %s, Pay = %d"%(self.position, self.name, self.pay)

    def calculatePay(self):
        promt = "\nEnter number of hours worked for %s: "%(self.name)
        hours = input(promt)
        promt = "Enter the hourly rate for %s: "%(self.name)
        hourlyRate = input(promt)
        self.pay = int(hours) * int(hourlyRate)
        return self.pay

    @property
    def position(self):
        print("Getter Method")
        return self.position

    @position.setter
    def position(self, value):
        if value == 'Manager' or value == 'Basic':
            self.position = value
        else:
            print("Position is invalid. No changes made.")

Сохранив этот класс в отдельный файл под названием "CalculatePay", я хотел импортировать его в другой файл, где задам нужные данные(pPosition, pName, pPay). Если честно, я не совсем понимаю, как правильно нужно "давать" данные для класса. Я знаю, что нужно сообщить программе нужные ей значения, но как это именно делается я не понял. Код нового файла:

import CalculatePay

officeStaff1 = Staff('Basic', 'Ivan', 0)
salary = Staff.calculatePay()

print(salary)

Ошибка:

Traceback (most recent call last):
  File "D:\Python works\CP.py", line 4, in <module>
    salary = calculatePay()
NameError: name 'calculatePay' is not defined

Буду благодарен за помощь.


Ответы (2 шт):

Автор решения: Extend

Так, ну для начала, вам необходимо сделать импорт класса в новый модуль. В первых строках файла:

from 'название файла, в котором находится класс' import Staff

Далее вы сможете создать экземпляр класса, обращаясь к классу в созданном модуле, как вы это пытались сделать:

officeStaff1 = Staff('Basic', 'Ivan', 0)
→ Ссылка
Автор решения: YuriiR
import CalculatePay

officeStaff1 = CalculatePay.Staff('Basic', 'Ivan', 0)
salary = officeStaff1.calculatePay()

print(salary)
→ Ссылка