zoukankan      html  css  js  c++  java
  • 面向对象-clssmethod staticmethod @property

    一、classmethod介绍

    介绍:@classmethod修饰符我们从名称就可以知道,这是一个类方法,那么和普通的类中的方法有什么不同的

    a、类方法,是由类本身调用的,无需实例化类,直接用类本身调用即可,但是要注意实例对象也可以调用类方法

    b、类方法,无需要要一个self参数,这个self参数表示类的实例对象,但是他需要一个cls参数,这个参数表示类本身

    c、类方法,可以调用类的属性,类的方法,类的实例对象

    下面我们正常进入介绍classmethod这个修饰符

    1、类方法可以由类调用,也可以由实例对象调用

    class Test:
    # n=1
    # def func1(self):
    # print('你好')
    # @classmethod
    # def func2(cls):
    # cls.func1(object)
    # cls.func3()
    # return cls.n
    # @classmethod
    # def func3(cls):
    # print('大帅哥')
    # a=Test.func2()
    # b=Test()
    # # b.func2()
    # # print(b.func2())
    # print(a)

    运行结果:
    你好
    大帅哥
    1

    python staticmethod 返回函数的静态方法。

    该方法不强制要求传递参数,如下声明一个静态方法:

    class C(object):
        @staticmethod
        def f(arg1, arg2, ...):
            ...

    以上实例声明了静态方法 f,从而可以实现实例化使用 C().f(),当然也可以不实例化调用该方法 C.f()。

    函数语法

    staticmethod(function)

    一.定义

    装饰器@property
    可以把方法变成属性使用
    作用: 控制类内成员的获取 设置 删除
    获取 @property
    设置 @自定义名.setter
    删除 @自定义名.deleter

    二.具体实现

    1.方法一

    class MyClass():
        def __init__(self,name):
            self.name = name

        #获取
        @property
        def username(self):
            return self.name

        #设置
        @username.setter
        def username(self,val):
            self.name = val
    #删除
        @username.deleter
        def username(self):
            del self.name
    obj = MyClass("ONE")
    # 获取
    print(obj.username)

    # 设置
    obj.username = "two"
    print(obj.username)

    # 删除 del 调用删除相关的方法
    del obj.username
    # print(obj.username)

     

        

  • 相关阅读:
    CentOS 配置防火墙+允许指定ip访问端口
    防火墙总结
    WordPress Rank Math SEO插件任意元数据修改漏洞分析
    thinkphp6 session 任意文件创建漏洞POC
    云锁最新版SQL注入WAF绕过
    加密Webshell“冰蝎” 流量 100%识别
    MKCMS代码审计小结
    远控免杀从入门到实践之白名单(113个)总结篇
    记一次从源代码泄漏到后台获取webshell的过程
    一次实战sql注入绕狗
  • 原文地址:https://www.cnblogs.com/fan-1994716/p/11634548.html
Copyright © 2011-2022 走看看