Python第三次学习之面向对象程序设计

Python 语言是一种面向对象编程语言( Object-Oriented Programming
Language ),简称为 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()

 

 

 还有封装和多态之后学习再更

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sky逆流而上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值