python类与实例定义、调用类方法的几种方式、类的继承特性

一、类的定义+通过实例对象来调用方法

如:

class MyClass():

        def __init__(self,name):

             self.name=name

       def say(self):

             print('hello',self.name)

myobject=MyClass('jack')      # 实例化类:实例一个类的对象

myobject.say()                       # 调用类的对象方法

#=> hello jack 

1)类的参数其实就是__init__初始化方法的参数

2)与函数不同的是,类的实例化永远只返回它的实例对象

3)实例是由类“铸造”的产物,称之为对象

4)在类的定义中,使用self来表示具体的对象;一个类可以实例出任意多个对象,且所有对象在初始时具有相同的功能

5)使用类方法之前,一般都需要先实例一个类的对象;大部分 类方法需要通过实例对象来调用

二、通过类本身来调用方法

(1)方式一:静态方法

class MyClass():

        def __init__(self,name):

             pass

       @staticmethod

       def say(name):

             print('hello',name)

MyClass.say('jack')          #=> hello jack 

1)定义方法时 添加@staticmethod注解,python解释器识别出是静态方法,则通过类也可以直接调用

2)静态say方法少了一个self参数,因为通过类调用的时候还没有实现实例化,也就没有self参数传给它

(2)方式二:类方法

class MyClass():

        def __init__(self,name):

             pass

       @classmethod

       def say(cls,name):

             print('hello',name)

MyClass.say('jack')          #=> hello jack 

1)定义类方法时需添加@classmethod注解

2)同时say方法的第一个参数换成cls,它代表MyClass类本身

三、类的继承特性

class Person():                  #父类

        def __init__(self,name):

             self.name=name

       def say(self):

             print('my name is',self.name)

class Man(Person):                    #子类

       def say(self,name):             #覆盖父类的say方法        

             print('hello',name)         #子类的新的方法

       def sex(self):

             print('I am man')

man=Man(‘jack’)

man.say()                 #=> hello jack 

man.sex()                #=> I am man

1)类除了能把数据和方法封装在一起之外,还支持继承

2)被继承的为父类,继承的为子类;子类拥有父类的所有开放数据和方法,父类不可以访问子类定义的任何内容

3)如果在子类添加新的方法与父类某方法的方法名相同, 则调用此方法时会覆盖父类的此方法

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值