1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
class MyClass():
# 直接将属性定义在类中,这种属性称为 类属性
# 类属性可以通过实列对象和类对象访问,但是只能通过类对象修改
# 类属性都是用来保存一些公共的数据
a = 10
def __init__( self ):
# 可以直接将属性添加到实列对象中,此时这个属性称为实例属性
# 实例属性只能被实例访问和修改,无法被类访问和修改
# 一般情况下定义的都是实例属性
self .b = 'hello'
# 在类中直接定义的方法,称为实例方法
# 实例方法,可以通过实例对象和类对象调用
# 但是注意:通过类对象调用时,不会自动传递self
def fn( self ):
print ( '我是fn方法' )
# 在方法前添加classmethod,则该方法自动变成类方法
# 类方法的第一个参数默认是cls表示当前的类对象
# 并且类方法既可以通过实例对象调用也可以通过类对象调用
@classmethod
def fn2( cls ):
print ( '我是fn2方法' , cls )
# 添加staticmethod装饰器的方法是 静态方法
# 静态方法可以通过类和实例调用,并且没有任何默认参数
# 静态方法是和对象无关的方法,一般静态方法都是一些工具方法
# 觉得没有地方放了,就放到一个类中
@staticmethod
def fn3():
print ( '我是fn3方法' )
mc = MyClass()
# mc.a = 50
MyClass.a = 30
print (mc.b)
print (MyClass.a)
MyClass.fn(mc)
MyClass.fn2()
mc.fn2()
MyClass.fn3()
mc.fn3()
|
到此这篇关于python_类属性学习的文章就介绍到这了,更多相关python_类属性学习内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_39128254/article/details/115047343