面向对象详解

一、面向对象介绍

       面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

二、Python面向对象详解

2.1、实例方法对象

#代码如下所示
class TestOne(object):
    #初始化
    def __init__(self):
        self.uname = "amumu"
        self.age = 18

    #不需要传参数的方法
    def unames(self):
        return self.uname

    #需要传参数的方法
    def ages(self,overyear):
        age = self.age + overyear
        return age

if __name__ == '__main__':
    #实例化对象
    test_one = TestOne()

    #方法调用
    uname_out = test_one.unames()
    age_out = test_one.ages(2)
    print("姓名:{}\n年龄:{}".format(uname_out,age_out))

#打印日志如下所示
D:\Python37\python.exe E:/xianjian/SimpleBook.py
姓名:amumu
年龄:20

Process finished with exit code 0
  • class 是创建类的关键字,关键字后面的 “TestOne” 是类名
  • def init(self) 是类的初始化方法,初始化方法的作用主要是在调用类时就需要运行的代码进行前置操作
  • def unames(self) 和 def ages(self,overyear) 是类TestOne中构建的方法
  • test_one = TestOne() 实例化对象,实例化对象要先实例化以后才能调用类里面的方法
  • test_one.unames() 通过实例化对象调用方法unames,unames与ages不同的是ages是参数调用,调用方法的参数可以是整型、字符型、浮点型、布尔值、列表、字典等
  • 注意实例化方法对象中不能有静态方法

读后小作业:如何不调用类中的普通方法,输出值"amumu"呢?欢迎留言!

2.2、类方法对象

#代码如下所示
class TestTwo:
    #不需要传参数的方法
    def unames(self):
        uname = "amumu"
        return uname

    #需要传参数的方法
    @staticmethod
    def ages(overyear):
        age = 18 + overyear
        return age


if __name__ == '__main__':
    #方法调用
    uname_out = TestTwo().unames()
    age_out = TestTwo.ages(5)
    print("姓名:{}\n年龄:{}".format(uname_out,age_out))

#打印日志如下所示
D:\Python37\python.exe E:/xianjian/SimpleBook.py
姓名:amumu
年龄:23

Process finished with exit code 0
  • 类方法对象中可以有实例化方法也可以有类方法
  • 调用方法unames时,要想实例化对象TestTwo,例如TestTwo().unames()
  • 调用静态方法ages时,不需要实例化对象TestTwo,例如TestTwo.ages(5)
  • @staticmethod是装饰器,表示当前修饰的方法为静态方法

2.3、类名规范

class ClassOne:
    def def_one(self):
        return 1
    
class ClassTwo():
    def def_two(self):
        return 2
    
class ClassThree(object):
    def def_three(self):
        return 3
  • 类名我们一般采用驼峰式命名法,名称对于对象处理的业务要关联性的意义,例如:我们构建一个查询用户地址的方法,命名可以是:SelectUserAddress,不能写成selectuseraddress或者chaxunyonghudizhi,尽量不要用拼音书写发,并不是我们不提倡自己的文字,而是中文太博大精深,多音字太多,在没有声调的加持下,时间久了就很难理解当时这个对象是做什么的

  • 从以上代码中可以看出对象名的三种书写方法,其实她们本质上没有什么区别,无论写不写object,对象都会默认调用Python中的这个基键,小编一般都写上的,因为小编觉得写上感觉帅

三、实例化方法对象和类方法对象的优势

  • 实例化方法对象在未调用类中的方法时,只会调用初始化对象,不会消耗太多的资源,而且书写美观
  • 类方法对象的好处是可以构建静态方法,调用静态方法时,可以直接调用,可以提高编写效率,当然也有缺陷,缺点就是类方法对象在调用时,会默认调用类中的其他方法,会消耗大量的资源



https://www.jianshu.com/p/53bf976cd804
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值