#C:/Python32
class Person:
def __init__(self, name = "joe" , age= 20 , salary=0):
self.name = name
self.age = age
self.salary = salary
def __printData__(self):
return " My name is {0}, my age is {1} , and my salary is {2}.".format(self.name, self.age, self.salary)
print(Person)
class Employee(Person):
def __init__(self, name, age , salary):
Person. __init__ (self,name = "Mohamed" , age = 20 , salary = 100000)
def __printData__(self):
return " My name is {0}, my age is {1} , and my salary is {2}.".format(self.name, self.age, self.salary)
print(Employee)
p= Person()
e = Employee()
Q
오류 : 사람은
-3
A
답변
5
귀하의 문제를 단순화 할 수 있습니다 찾을 수 없습니다
class Person:
print(Person)
이것은 NameError
을 올릴 것이다. 클래스를 생성 할 때 클래스의 본문이 실행되어 특별한 네임 스페이스에 배치됩니다. 그런 다음 해당 네임 스페이스는 실제로 클래스를 생성하는 역할을 담당하는 type
으로 전달됩니다. 코드에서
type
에 전달하고 클래스 이름에 바인드 도착하기 전에 클래스의 몸이 실행되고있는 단계에서)
Person
실제로 생성 된 클래스 이전
print(Person)
에 노력하고
NameError
으로 연결됩니다.
0
인쇄가 호출 될 때 클래스가 특정 정보를 반환하도록하고 해당 클래스의 인스턴스를 만들 때 해당 정보가 인쇄되기를 원합니다. 이를 수행하는 방법은 클래스에 대해 __repr__
(또는 __str__
, 자세한 내용은 Difference between __str__ and __repr__ in Python 참조) 메소드를 정의하는 것입니다. 그런 다음 클래스의 인스턴스에서 매번 print가 호출되면 해당 __repr__
메소드에서 반환 된 내용이 인쇄됩니다. 그런 다음 인스턴스를 인쇄하는 행을 __init__
메소드에 추가하면됩니다. 클래스 내에서 현재 인스턴스는 특수 self
키워드로 참조되며 클래스 이름은 기본 네임 스페이스의 클래스 범위 밖에 정의됩니다. 따라서 print(Person)
이 아니라 print(self)
으로 전화해야합니다. 귀하의 예를위한 코드는 다음과 같습니다.
class Person:
def __init__(self, name = "joe" , age= 20 , salary=0):
self.name = name
self.age = age
self.salary = salary
print(self)
def __repr__(self):
return " My name is {0}, my age is {1} , and my salary is {2}.".format(self.name, self.age, self.salary)
joe = Person()
>>> My name is joe, my age is 20 , and my salary is 0.
관련 문제
- 1. 사람은
- 2. 사람은
- 3. 빠른 사람은
- 4. 사람은 프로그램
- 5. 다른 사람은 IPython에서 작동하지 않습니다
- 6. 테스트를 작성해야하는 사람은 누구입니까?
- 7. 사람은 나도 몰라 ,,
- 8. IronJS를 사용하는 사람은 누구입니까?
- 9. 사람은 어떻게 작동
- 10. 받는 사람은 ASP.Net
- 11. 달빛을 사용하는 사람은 누구입니까?
- 12. CouchDB를 사용하는 사람은 누구입니까?
- 13. 사람은 예제와 함께 제약
- 14. 사람은 다음 코드
- 15. DominoTomcatSSO 프로젝트에 경험이있는 사람은 누구입니까?
- 16. Commission Junction API를 사용하는 사람은 누구입니까?
- 17. 루비 : '구조가없는 사람은 쓸모가 없습니다'err mssg
- 18. 직렬화 예외 : 다른 사람은 누구입니까?
- 19. 숭고한 사람은 힘내에서 일하지 않는다
- 20. LINQ에 가입 한 사람은 누구입니까?
- 21. HyperDex를 프로덕션에서 사용하는 사람은 누구입니까?
- 22. pop11 언어를 사용하는 사람은 누구입니까?
- 23. AngularJS에서 vis.js를 사용하는 사람은 누구입니까?
- 24. 개미없이 webtest를 사용하는 사람은 누구입니까?
- 25. 리소스 번들 - 설명하는 사람은 누구입니까?
- 26. 사람은 여러 개의 honorificPrefix를 사용해야합니까?
- 27. 기본적으로 작업을 대기중인 사람은 누구입니까?
- 28. cloudera 5.2.0과 함께 hadoop_fdw를 사용하는 사람은 누구입니까?
- 29. Control.Pipe를 설치하는 데 문제가있는 사람은 누구입니까?
- 30. RailRoad 다이어그램 생성기를 사용하는 사람은 누구입니까?
왜 Python32 shebang과 python-2.7 태그가 있습니까? – geoffspear