静态方法

复制代码
 1 '''
 2 静态方法(Static Methods)是定义在类中的普通方法,与类和实例对象没有直接关联。静态方法可以通过类名直接调用,也可以通过实例对象调用。
 3 
 4 1. 定义静态方法:
 5     1. 静态方法使用@staticmethod装饰器来标识。
 6     2. 静态方法不需要传递类或实例参数。
 7     3. 静态方法无法访问类属性、实例属性和其他类方法。
 8 
 9 2. 最佳实践:
10     1. 静态方法适合用于不依赖于类或实例状态的操作。
11     2. 静态方法通常用于实现辅助函数或独立的功能。
12 
13 3. 使用场景:
14     1. 执行与类或实例无关的计算或操作时,可以使用静态方法。
15     2. 实现工具函数、辅助函数或独立的功能时,静态方法很有用。
16     3. 在无需类属性或实例属性的情况下,可以使用静态方法。
17 
18 4. 坑:
19     1. 静态方法无法直接访问类属性、实例属性和其他类方法。
20     2. 由于静态方法与类和实例对象没有直接关联,因此在静态方法中无法直接访问这些成员。
21 '''
22 
23 
24 # 1. 语法
25 class MyClass:
26     @staticmethod
27     def static_method():
28         print("This is a static method")
29 
30 
31 # 调用静态方法
32 MyClass.static_method()  # This is a static method
33 
34 # 2. 最佳实践
35 import math
36 
37 
38 class Geometry:
39     @staticmethod
40     def calculate_area(radius):
41         return math.pi * radius ** 2
42 
43 
44 # 调用静态方法
45 area = Geometry.calculate_area(5)
46 print(area)  # 78.53981633974483
47 
48 
49 # 4. 坑
50 class MyClass:
51     class_attribute = "This is a class attribute"
52 
53     @staticmethod
54     def static_method():
55         print(MyClass.class_attribute)  # This is a class attribute,无法直接访问类属性,但可以通过类名.类属性访问
56         # test()  # 这样不行
57         # print(class_attribute)  # 这样也不行
58     def test(self):  
59         print('test')
60 
61 
62 # 调用静态方法
63 MyClass.static_method()  # This is a class attribute
复制代码

 

posted @   Allen_Hao  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示