类方法@classmethod属性方法@property静态方法 @staticmethod

Posted 公子兔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类方法@classmethod属性方法@property静态方法 @staticmethod相关的知识,希望对你有一定的参考价值。

class Baby():
# def __init__(self,name):#构造函数不是必须得
# print(‘self的内存地址‘,id(self))
# self.name=name
# #self代表的就是实例化之后的对象
# self.money=5000
# self.sex=‘女‘
country=‘China‘#类变量,公共的变量,每个实例都可以用

def my(self):
self.name=‘nhy‘
def cry(self):#实例方法
print(‘哇哇哇哇‘)
@property#看起来像属性的一个方法(没有入参可以用,结果就是返回值)
    def h(self):
return 198

@classmethod#(不想实例化的时候,就可以用类方法)1、不用实例化就可以直接调用。2、它可以通过cls使用类变量3、它不能调用这个类里面的其他实例方法和实例变量
   def xm(cls):#cls代表的就是baby这个类
print(cls.country)
print(‘我是类方法‘)
# print(cls.name)
# cls.cry()
@staticmethod#
就是一个普通的函数,只不过写在类里面而已,它用不了类变量,类方法,实例变量,实例方法
    def xh():
print(‘静态方法,它和一个没写在类里面的函数一样‘)
Baby.xh()

Baby.xm()
x=Baby()
x.xm()
# Baby.country=‘USA‘#类变量可以直接用过类名,XXX来进行修改的
# dcg=Baby()
# print(dcg.country)
# dcg.country=‘Japan‘
# yjt=Baby()
# print(yjt.country)

# b=Baby()
# print(b.h)
# zll=Baby()
# zll.my()
# print(zll.name)
# ka=Baby(‘可爱‘)
# print(‘可爱的内存地址‘,id(ka))
# print(ka.money)
# print(ka.sex)
# ka.car=‘bmw x3‘
# print(ka.car)
# xb=Baby(‘小白‘)
# print(id(xb))

以上是关于类方法@classmethod属性方法@property静态方法 @staticmethod的主要内容,如果未能解决你的问题,请参考以下文章

面试必问python实例方法类方法@classmethod静态方法@staticmethod和属性方法@property区别

python-静态方法staticmethod类方法classmethod属性方法property

类方法@classmethod属性方法@property静态方法 @staticmethod

python类方法@classmethod与@staticmethod

Python类总结-ClassMethod, StaticMethod

类方法classmethod 和静态方法staticmethod