python基础 - 13 面向对象2

本文介绍了Python面向对象编程中的特殊方法(魔术方法),特别是__init__方法在实例化时的作用,以及如何通过封装提高数据安全性。讲解了封装的概念,包括隐藏属性和使用get/set方法。最后,讨论了property装饰器如何将方法转化为属性,并允许属性赋值。
摘要由CSDN通过智能技术生成

一、特殊方法(魔术方法)

1.1 问题引入

定义一个类对象,并将其实例化。对不同的实例对象,我们可以手动定义不同的属性值

           class person:
        
			    def  speak(self):
			        print("你好,我是%s"  %self.name)
			
			p1 = person()
			p2 = person()
			p3 = person()
			p1.name = '钢铁侠'
			p2.name = '蜘蛛侠'
			p1.speak()
			p2.speak()
			p3.speak()

在person这个类中,每个对象都必须定义name这个属性且每个对象的属性值都不一样,需要手动添加好几个对象的name属性,较为麻烦;
当忘记添加某个对象的name属性而直接调用speak方法时,Python并不会提示错误,但运行时却报错
有什么方法可以解决以上两个问题呢?

1.2 特殊方法(init

  1. 特殊方法简介
    特殊方法以双下划线开头,以双下划线结束的方法__XXX__
    特殊方法不需要自己调用,会在特殊的时候有解释器自动调用

  2. 学习特殊方法的方式
    特殊方法什么时候调用
    特殊方法有什么作用

  3. __init__方法简介
    __init__方法在实例对象创建时自动调用
    __init__方法会向实例对象初始化属性

  4. 实例对象的创建流程
    p1 = person()
    a.创建了一个变量p1
    b.创建了一个实例对象
    c.执行类中代码块中的代码,只在类中执行一次
    d.调用 __init__方法

            class person:
    
    		    def __init__(self,name):
    		
    		        # self指的就是当前所创建的实例对象本身
    		        #name为该函数的一个形参,通过传参来初始化当前的属性,属性名也为name
    		      
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值