码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-05-20 16:33:26      阅读:659      评论:0      收藏:0      [点我收藏+]

标签:行修改   其他   实例变量   ini   count   实例   def   函数   zll   

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

标签:行修改   其他   实例变量   ini   count   实例   def   函数   zll   

原文地址:https://www.cnblogs.com/irisx/p/9063410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!