python之面向对象学习0

本文介绍了面向过程与面向对象编程的区别,并重点讲解了Python中如何创建类和对象。面向对象编程通过类和对象抽象现实世界,使复杂问题的解决更加直观。在Python中,创建类后可以通过实例化生成对象,进而调用类的属性和方法。文章提供了实例演示创建类和对象的过程,并提出了面向对象编程中考虑类属性的独特性的重要性。
摘要由CSDN通过智能技术生成

面向过程和面向对象的区别

面向对象是相对于面向过程而言的,在早期编程中,比如实现1+2+3=6.
通过设计一个简单的算法就能实现。
随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。

对象的含义是指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。

比如人类的描述:
属性:姓名,身高,体重,肤色,性别,等等
行为:十月怀胎,吃饭,上厕所等等
符合上述描述的,可以称之为类,类:就是类别,类别,一类事物的统称,抽象概念,类并不存在。
而对象则是:类的实例(实实在在的案例)

上述描述说明在面向对象编程时候需要先创建类,再对类进行实例化生成对象。

python中如何创建类和对象

"""
    python中定义一个类,使用class关键字
    class 类名称       类的命名规范:大驼峰法
    潜规则
"""
# 直接这样定义一个类
# class User:

class User(object):

    # 定义类的属性(静态的特征)
    # 覆盖(重新)__init__方法
    def __init__(self):
        #类的成员变量
        self.name = "波波哥"
        self.age = "20"
        self.gender = "男"
        self.email = "bobo@163.com"

	#定义了类的属性,还可以定义类的行为
	 def study(self):
        print("study python")
        print("闭门之中,请勿打扰!")
    
    
    def eat(self,food):
        print("我的名字是{},今年{},爱吃{}".format(self.name,self.age,food))

由上,一个简单的类就创建好了。下面就对类进行实例化。

if __name__ == '__main__':
    #创建对象
    u1 = People()
    
    '''   
        ##调用对象的属性
        print(u1.name)
        print(u1.age)
        print(u1.gender)
        print(u1.email)
        
        
        #调用对象的方法
        u1.study()
        u1.eat("油泼辣子面")
    '''
    u1.name = "柳下惠"    
    u1.age = 25
    u1.gender = "男"
    
    u1.study()
    u1.eat("馒头")

上面通过类生成对象u1,调用类中的属性和方法,也可以修改类中的属性。
上述代码执行的结果是,注意观察未注释部分:
在这里插入图片描述
上面可以看到,是先对类的属性进行了固定,下面再对类的属性进行修改,下面采用生成对象时候传入参数而创建对象。

# -*- coding: utf-8 -*-
class Cat:
        
    def __init__(self,name,age,color,gender):
        self.name = name
        self.age = age
        self.color = color
        self.gender = gender
        
    
    def sperk(self):
        print("喵喵喵,嗷嗷嗷!!我是{}".format(self.name))
    
    
if __name__ == '__main__':
    c1 = Cat("建宏",20,"黑色","公")
    print(c1.name)
    c1.sperk()

代码执行结果,将创建对象时候传入的参数来生成对象。
在这里插入图片描述

在创建类的时候要注意什么才是这个类唯一的属性?
比如,圆类的属性应该是什么呢?我觉得属性是半径R比较合适,方法可以写输出圆的周长,面积等。
可以写为如下:

# -*- coding: utf-8 -*-
import math


class Circle:
    
    
    def __init__(self,r):
        self.r = r
    
    
    def get_area(self):
        return self.r*self.r*math.pi
    
    
    
    def get_cal(self):
        return 2*self.r*math.pi
    

if __name__ == '__main__':
    radius = float(input("请输入圆的半径"))#还可以加上对输入的值进行判断是否大于0.
    r1 = Circle(radius)
    print("该圆的周长是{:.3f}".format(r1.get_cal()))
    print("该圆的面积是{:.3f}".format(r1.get_area()))#{:.3f}进行格式化输出,保留三位小数

执行结果。
在这里插入图片描述
今天的面向对象分享就到这里,你可以尝试着练习下面这些题目:

	1、定义一个圆类(Circle),求圆的面积和周长
	2、定义一个三角形类(Strange),属性是三边的长度,求三角形的面积和周长
	3.创建一个学员类(Student),并设计三个字段用于表示学生的成绩
		(语文、数学、英语);然后定义一个列表list表示一个班
		的学生(10人),依次输入每个学生的信息和成绩,输入
		的同时将学员的每科成绩划分等级(100-90:A 89-80:
		B 79-70:C 69-60:D 60以下:E)最后输出所有学员的
		信息
	4.编一个关于求多个某门功课总分和平均分的程序。
		1.每个学生信息包括姓名和某门功课成绩。
		2.假设5个学生。
		3.类和对象的处理要合理
	5.设计一个游戏角色类
		字段:角色名、血量、魔法、状态
		方法:释放技能 被伤害
		要求:设计要合理

答案可参考点这里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值