# self 指向的是类的 【实例对象】
class Point:
name = '类属性' # 类属性
def __init__(self, x, y):
self.x = x # 实例属性
self.y = y
pass
# 实例方法
def getCoordinates(self):
print('实例方法:(X:{},Y:{})'.format(self.x, self.y))
pass
# 类方法
@classmethod
def classmethodFun(cls):
print('类方法访问:{}'.format(cls.name))
cls.classmethodFun2()
pass
# 类方法
@classmethod
def classmethodFun2(cls):
print('被类方法访问的类方法:{}'.format(cls.name))
pass
# 静态方法
@staticmethod
def staticmethodFun():
print('我是【{}】的静态方法'.format(Point.__name__))
pass
pass
# point 实例对象
# Point(20, 35) 类对象
point = Point('实例属性X', '实例属性Y')
print('point.name:', point.name) # yes
print('point.x:', point.x) # yes
point.getCoordinates() # yes
print('Point.name:',Point.name) # yes
# print(Point.x) # no
# Point.getCoordinates() # no
# TODO 通过 实例对象point可以访问类的 【属性】 【实例属性】 【实例方法】 【类方法】 【静态方法】
# TODO 通过 类对象Point可以访问类的 【属性】 【类方法】 【静态方法】
print('*' * 40, '👇类方法 使用@classmethod关键字')
point.classmethodFun()
Point.classmethodFun()
print('*' * 40, '👇类的静态方法 使用@staticmethod关键字')
Point.staticmethodFun() # 使用类对象进行 操作
point.staticmethodFun() # 使用实例对象进行操作 但是没有意义 因为声明了类方法就是不想要定义
# 那么为什么要使用静态方法
# 1. 由于静态方法主要用来存放逻辑性的代码 与 类 以及 实例对象没有交互
# 2. 也就是说,在静态方法中,不会涉及到与 类中方法和属性的操作
# 3. 数据的资源能够得到 有效的充分利用
python 类的语法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...