# 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 类的语法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...