Попытка создать объект в методе main, но получаю ошибку.Python 3 - PullRequest
0 голосов
/ 23 мая 2018

Когда я пытаюсь создать объект "Сотрудник" в методе main, программа выдает ошибку.

class Employee: 
    empCount = 0

    def __init__( self , name , salary ):
        self.name = name ;
        self.salary = salary ;
        Employee.empCount += 1 ;

    def displayCount( self ):
        print( "Total Employee: %d" % Employee.empCount ) ;

    def displayEmployee( self ):
        print( " Name:  ",self.name ) ;

def main():
    emp1 = Employee("Alfanzo Cruz" ,3233)
#   emp2 = Employee(" Frernando " , 32323 ) ;
#   emp3 = Employee("Snoop Dogg",23232) ;

if __name__ == "__main__":
    main()

`

enter image description here

Я перебрал различные ссылки, но не смог понять проблему, класс всегда глобален, почему он выдает ошибку?,Я начинающий в питоне, и ударил часами в этом.Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Причиной ошибки является отступ, люди, которые новички в этом, обращают внимание на отступ.

   class Employee: 
    empCount = 0

    def __init__( self , name , salary ):
        self.name = name ;
        self.salary = salary ;
        Employee.empCount += 1 ;

    def displayCount( self ):
        print( "Total Employee: %d" % Employee.empCount ) ;

    def displayEmployee( self ):
        print( " Name:  ",self.name ) ;

def main():
    emp1 = Employee("Alfanzo Cruz" ,3233)
    #   emp2 = Employee(" Frernando " , 32323 ) ;
    #   emp3 = Employee("Snoop Dogg",23232) ;

if __name__ == "__main__":
    main()
0 голосов
/ 23 мая 2018

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

Если у вас есть отдельный скриптв котором вы хотите использовать класс, вы просто набираете в начале: import Employee (без ".py").(Он должен находиться в той же папке проекта, или вам нужно добавить его в переменную системных путей, чтобы он мог его найти) при создании объекта:

emp1 = Employee.Employee("name",1234)

Я не уверен, что вам нужен основнойчастично, он обычно используется, но этот сценарий только создает класс, поэтому, если он запускается, ничего на самом деле не происходит.

В то же время я думаю, что ваш код отсутствует в самом начале:

class Employee:

(я обычно использую PyCharm)

Отредактировано: для сохранения класса в (Employee.py):

class Employee:
    empCount = 0
    def __init__( self , name , salary ):
        self.name = name ;
        self.salary = salary ;
        Employee.empCount += 1 ;

    def displayCount( self ):
        print( "Total Employee: %d" % Employee.empCount ) ;

    def displayEmployee( self ):
        print( " Name:  ",self.name ) ;

Открыть новый скрипт или в консоли (та же папка / Project):

import Employee 
emp1 = Employee.Employee("Alfonz",1234)
emp1.displayCount()
emp1.displayEmployee()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...