python---class(一): 클래스와 기본 클래스 소개

2632 단어
상속: 기류와 파생류
'속'(is-a)과'유'(has-a)라는 두 가지 관계를 구분한다.'속'은 계승이다. 이런 관계에서 파생류의 한 대상도'기류'의 한 대상에 속한다.
"있음"은 "작성"입니다. 이 관계식에서 한 객체는 다른 클래스의 하나 이상의 객체에 대한 참조를 ""가짐""하고 후자는 전자 멤버입니다."
기류는 초류이고, 파생류는 자류이다.
파생 클래스의 형식을 만들려면 다음과 같이 하십시오.
class Paishenclassname(Jileiclassname):
    ...

#class   ( ):
    ....
# : Paishenclass         Jileiclass 、 

다음 예는
추가 정보:
issubclass(A, B), A클래스가 B클래스의 하위 클래스인지 판단;
isinstance(a, A), a가 A류의 대상인지 아닌지를 판단한다.
A.__bases__,클래스 A의 기본 클래스를 반환합니다. 기본 클래스가 없으면
예를 들어 원은 점의 하위 클래스이다.
import math
class Point:
    '''Class that represents geometric point'''
    def __init__(self,xValue=0,yValue=0):
        '''Point constructor take x and y coordinates'''
        self.x=xValue
        self.y=yValue
class Circle(Point):
    '''Class that represents a circle'''
    def __init__(self,x=0,y=0,radiusValue=0.0):
        '''Circle corstructor takes x and y coordinates of center
        point and radius'''
        Point.__init__(self,x,y)#class base-class constructor
        self.radius=float(radiusValue)
    def area(self):
        '''Computes area of a Circle'''
        return math.pi * self.radius ** 2
#main program
#examine classes Point and Circle
print("Point bases:",Point.__bases__)
print("Circle bases:",Circle.__bases__)

print("Point is a subclass of Circle:",issubclass(Point,Circle))
print("Circle is a subclass of Point:",issubclass(Circle,Point))

point =Point(30,50)#create Point object
circle=Circle(120,89,2.7)#create Circle object
print("
circle is a Circle object:",isinstance(circle,Point)) print("point is a Circle object:",isinstance(point,Circle)) print("Circle is a point object:",isinstance(circle,Point)) #print Point and Circle objects print ("
point members:
\t",point.__dict__) print("circle menbers:
\t",circle.__dict__) print("
Area of circle:",circle.area())

실행 결과:
Point bases: (,)
Circle bases: (,)
Point is a subclass of Circle: False
Circle is a subclass of Point: True

circle is a Circle object: True
point is a Circle object: False
Circle is a point object: True

point members:
	 {'x': 30, 'y': 50}
circle menbers:
	 {'x': 120, 'y': 89, 'radius': 2.7}

Area of circle: 22.902210444669596

좋은 웹페이지 즐겨찾기