当前位置:   article > 正文

python基础 - 13 面向对象2_,一个虚方法speak,输出“hello!某某”。第一一个子类stu,该类有一个私有字段:电话

,一个虚方法speak,输出“hello!某某”。第一一个子类stu,该类有一个私有字段:电话

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在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
    • 2
    • 3
    • 4
    • 5
    • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/408449
推荐阅读
相关标签
  

闽ICP备14008679号