• Python合集之面向对象(三)


        类的成员主要有实例方法和数据成员组成,在类中创建了类的成员后,可以通过类的实例进行访问。

    1.创建实例方法并访问

    所谓实例方法是指在类中定义的函数,该函数时一种在类的实例上操作的函数。同__init__()方法一样,实例的方法的第一各参数必须是self,并且必须包含一个self参数。创建实例方法语法格式如下:

    def functionName(self,parameterlist):
        block
    参数说明:
    functionName:用于指定方法名,一般使用小写字母开头。
    self:必须参数,表示类的实例,其名称可以是self以外的单词,使用self只是一个惯例而已。
    parameterlist:用于指定除self参数以外的的参数,各参数间使用逗号进行分隔。
    block:方法体,实现的具体功能

    注:实例方法和Python中的函数的主要区别就是,函数实现的是某个独立的功能,而实例方法是实现类中的一个行为,是类的一部分。

    实例方法创建完成后,可以通过类的实例名和点 . 操作符进行访问,语法格式如下:

    instanceName.functionName(parametervalue)
    参数说明:
    instanceName:为类的实例名称
    functionName:为调用的方法名称。
    parametervalue:表示为方法指定对应的实际参数,其值的个数与创建实例方法中 parameterlist的个数相同。

    例如:

    class Geese:
        '''大雁类'''
        def __init__(self,beak,wing,claw):
            print("我是大雁类,我有以下特征:")
            print(beak)
            print(wing)
            print(claw)
        def fly(self,state):
            print(state)
    '''******调用方法**************'''
    beak_1="緣的基部 较高,长度和头部的长度基本相等"
    wing_="翅膀长而尖"
    claw_="爪子是噗状的"
    wildGoose=Geese(beak_1,wing_1,claw_1)
    wildGoose.fly("我飞翔的时候,一会儿排成人形,一回儿排成一字")

    注:在创建实例方法时,也可以和创建函数时一样为参数设置默认值,但是被设置类默认值的参数必须位于所有参数的最后。

    例如:上面的例子中,可以将实例方法修改为:

    def fly(self,state="我也会飞"):

    在调用该方法时,就可以不再指定参数值。

    2.创建数据成员并访问

    数据成员是指在类中定义的变量,即属性,根据定义位置,又可以分为类的属性和实例属性。

    2.1 类属性

    类属性是指定义在类中,并且在函数体外的属性,类属性可以在类的所有实例之间共享值,也就是在所有的实例化的对象中公用。

    注:类属性可以通过类名称或者实例名访问。

    例如:

    class Geese:
        '''雁类'''
        neck="脖子较长"
        wing="震翅膀频率高"
        leg="腿位于身体的中心指点,行走自如"
        def __init__(self):
            print("我属于雁类,我有以下特征:")
            print(Geese.neck)
            print(Geese.wing)
            print(Geese.leg)

    创建上面的类,然后创建该类的实例,代码如下;

    geese=Geese()

    注:在Python中除了可以通过类名称访问类属性,还可以动态的为类和对象添加属性,也可以修改类属性,修改结果将作用于该类的所有实例。

    2.2 实例属性

    实例属性是指定义在类方法中的属性,只作用于当前实例。

    例如:

    class Geese:
        '''雁类'''
        def __init__(self):
            neck="脖子较长"
            wing="震翅膀频率高"
            leg="腿位于身体的中心指点,行走自如"
            print("我属于雁类,我有以下特征:")
            print(self.neck)
            print(self.wing)
            print(self.leg)

    创建上面的类Geese,然后创建类的实例,代码如下:

    geese=Geese()

    注:实例属性只能通过实例访问,如果通过类名访问实例属性,将抛出异常。

    对于实例属性也可以通过实例名称修改,与类属性不同,通过实例名称修改实例属性后,并不影响该类的另一个实例中相应的实例属性的值。

    花絮:

    本期的Python 面向对象就分享到这里,下期我们将继续分享Python面向对象的相关知识,感兴趣的朋友可以关注我。

    同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

  • 相关阅读:
    使用UFW防火墙拦截特定IP地址
    利用iptables防止syn flood攻击
    DDOS攻击模拟复现
    服务器遭到SYN攻击怎么办?如何防御SYN攻击?
    iptables限制同一IP连接数
    TIME_WAIT和CLOSE_WAIT状态区别
    详解TIME_WAIT过多,引起的请求502的问题。
    TIME_WAIT太多解决思路和方法
    黑客是如何攻击 WebSockets 和 Socket.io的
    免费CDN加速CloudFlare申请教程及使用 提供免费加速和防DDOS攻击
  • 原文地址:https://www.cnblogs.com/a-mumu/p/14599007.html
Copyright © 2020-2023  润新知