Python, 객체 생성
저는 파이썬을 배우려고 노력하고 있으며 지금은 수업의 요령과 인스턴스를 사용하여 수업을 조작하는 방법을 배우려고 노력하고 있습니다.
저는 이 연습 문제를 이해할 수 없는 것 같습니다.
이름, 나이 및 전공이 입력으로 지정된 것과 동일한 학생 개체 만들기 및 반환
def make_student(name, age, major)
개체가 의미하는 바를 잘 모르겠습니다. 함수 안에 이러한 값을 포함하는 배열을 만들어야 한다는 뜻입니까?클래스를 만들고 이 함수가 클래스 안에 있도록 한 후 인스턴스를 할당하시겠습니까?(이 질문 전에 저는 이름, 나이, 전공이 내부에 있는 학생 클래스를 설정하라는 요청을 받았습니다.)
class Student:
name = "Unknown name"
age = 0
major = "Unknown major"
class Student(object):
name = ""
age = 0
major = ""
# The class "constructor" - It's actually an initializer
def __init__(self, name, age, major):
self.name = name
self.age = age
self.major = major
def make_student(name, age, major):
student = Student(name, age, major)
return student
Python 철학의 원칙 중 하나는 "그것을 하는 데 하나의 분명한 방법이 있어야 한다"는 것이지만, 이를 위한 여러 가지 방법이 있습니다.다음 두 코드 조각을 사용하여 Python의 동적 기능을 활용할 수도 있습니다.
class Student(object):
name = ""
age = 0
major = ""
def make_student(name, age, major):
student = Student()
student.name = name
student.age = age
student.major = major
# Note: I didn't need to create a variable in the class definition before doing this.
student.gpa = float(4.0)
return student
저는 전자를 선호하지만 후자가 유용할 수 있는 경우가 있습니다. MongoDB와 같은 문서 데이터베이스를 사용할 때입니다.
클래스를 만들고 클래스를 지정합니다.__init__방법:
class Student:
def __init__(self, name, age, major):
self.name = name
self.age = age
self.major = major
def is_old(self):
return self.age > 100
이제 의 인스턴스를 초기화할 수 있습니다.Student클래스:
>>> s = Student('John', 88, None)
>>> s.name
'John'
>>> s.age
88
당신이 왜 필요한지는 모르겠지만,make_student학생 기능과 같은 일을 할 경우Student.__init__.
개체는 클래스의 인스턴스입니다.클래스는 객체의 청사진일 뿐입니다.그래서 당신의 클래스 정의를 고려하면 -
# Note the added (object) - this is the preferred way of creating new classes
class Student(object):
name = "Unknown name"
age = 0
major = "Unknown major"
다음을 생성할 수 있습니다.make_student의 새 인스턴스에 속성을 명시적으로 할당하여 작동합니다.Student-
def make_student(name, age, major):
student = Student()
student.name = name
student.age = age
student.major = major
return student
하지만 이것을 생성자에서 하는 것이 더 말이 될 것입니다.__init__) -
class Student(object):
def __init__(self, name="Unknown name", age=0, major="Unknown major"):
self.name = name
self.age = age
self.major = major
사용할 때 생성자가 호출됩니다.Student()다음에 정의된 인수를 사용합니다.__init__방법.생성자 서명은 기본적으로 다음과 같습니다.Student(name, age, major).
만약 당신이 그것을 사용한다면,make_student함수는 사소한 (그리고 불필요한) -
def make_student(name, age, major):
return Student(name, age, major)
재미로, 여기에 다음과 같은 예가 있습니다.make_student클래스를 정의하지 않는 함수입니다.제발 집에서 이것을 시도하지 마세요.
def make_student(name, age, major):
return type('Student', (object,),
{'name': name, 'age': age, 'major': major})()
미리 정의된 클래스를 사용하여 개체를 생성하는 경우 먼저 해당 개체를 저장하기 위한 변수를 생성해야 합니다.그런 다음 개체를 생성하고 생성한 변수를 저장할 수 있습니다.
class Student:
def __init__(self):
# creating an object....
student1=Student()
실제로 이 init 메서드는 클래스의 생성자입니다.몇 가지 속성을 사용하여 해당 메서드를 초기화할 수 있습니다.이 경우 개체를 만들 때 특정 속성에 대한 일부 값을 전달해야 합니다.
class Student:
def __init__(self,name,age):
self.name=value
self.age=value
# creating an object.......
student2=Student("smith",25)
언급URL : https://stackoverflow.com/questions/15081542/python-creating-objects
'programing' 카테고리의 다른 글
| 모든 테이블 삭제 sql 개발자 (0) | 2023.07.20 |
|---|---|
| 오라클 12c에 대한 동면 방언 (0) | 2023.07.20 |
| ID()로 개체를 가져오시겠습니까? (0) | 2023.07.20 |
| ORA-00054: 리소스 사용량이 많고 NOWAIT가 지정된 상태에서 획득 (0) | 2023.07.20 |
| Angular 2에서 앱 구성 요소로 경로 데이터를 가져오는 방법 (0) | 2023.07.20 |