• Python 语言是一种面向对象编程语言( Object-Oriented ProgrammingLanguage ),简称为 OOP 语言• 无论是 变量 还是 函数 ,它们都是属于 某一个特定的类( class ) 。类的对象叫做该类的 实例( instance )• 特定类的所有对象 都与 类中定义的 方法 ( method ) 相关联,这些方法类似于一个函数,我们编写一次之后,可以重复的调用
1.对类和对象的理解(这里借用了老师的图片):
相比较于C++的构造函数,python显得更为简单。
在Python中self参数如果在类函数成员中使用,则必须是第一个参数,该参数表示创建的实例本身。
关于构造函数的使用
class High_school_student():
def __init__(self,age,sex):
self.age=age
self.sex=sex
self.gradyear=2006
student_a=High_school_student(18.0,'M')
print(student_a.age)
print(student_a.sex)
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def SayHello(self):
print("Hello,i am"+self.name)
def Sing(self,song):
print("sing a song" + song)
p = Person("Li Ming",18)
p.SayHello()
p.Sing("Happy birthday to you")
2.练习:
定义 point 类 :类中 数据成员 x 和 y 代表点对象的 x 和 y 坐标值;类中 定义构造函数 ,实现对 x 和 y 的初始化类中 定义 + 运算符重载函数 ,实现两个点对象相加运算,返回点对象,其 x 和 y 坐标分别为参与运算的两个点对象的 x 坐标和, y 坐标和;类中 定义点对象 (x1,y1) 转字符串方法 ,返回“ (x1, y1) ”字符串;类中 定义 * 运算符重载函数 ,实现 1 个点对象 (x1,y1) 和整数 K 的乘法运算,返回点对象,其 x 和 y 坐标分别为 (kx1, ky1) ;
class Point:
#对对象x,y,进行初始化
def __init__(self,x=0,y=0):
self.x=x
self.y=y
def printf(self):
print("{0} {1}".format(self.x,self.y))
def __str__(self):
return '('+str(self.x)+','+str(self.y)+')'
def __add__(self,other):
x=self.x+other.x
y=self.y+other.y
return Point(x,y)
def __mul__(self,other):
return Point(self.x*other,self.y*other)
a=int(input())
b=int(input())
c=int(input())
d=int(input())
p1=Point(a,b)
p2=Point(c,d)
p3=p1+p2
p3.printf()
print('a+b='+str(a+b))
print('a+b='+str(p1*10))
3.子类继承父类属性及实例化方法
class Person():
def __init__(self,name):
print('Parent class Person init is called')
self.name=name
def introduce(self):
print('My name is {}.'.format(self.name))
class Student(Person):
pass
class Worker(Person):
pass
stu1=Student('张三')
worker1=Worker('小明')
print(stu1.name)
print(worker1.name)
stu1.introduce()
worker1.introduce()
还有封装和多态之后学习再更