面向对象-clssmethod staticmethod @property

1、classmethod介绍

介绍:@classmethod修饰符咱们从名称就能够知道,这是一个类方法,那么和普通的类中的方法有什么不一样的html

a、类方法,是由类自己调用的,无需实例化类,直接用类自己调用便可,可是要注意实例对象也能够调用类方法python

b、类方法,无须要要一个self参数,这个self参数表示类的实例对象,可是他须要一个cls参数,这个参数表示类自己函数

c、类方法,能够调用类的属性,类的方法,类的实例对象spa

 

 

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

一、类方法能够由类调用,也能够由实例对象调用对象

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 返回函数的静态方法。blog

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

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

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

函数语法

staticmethod(function)

一.定义

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

二.具体实现

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)

相关文章
相关标签/搜索