VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Python3基础之Python——方法(2)

如果使用类调用实例方法,第一个参数不会自动绑定,只能手动去为第一个参数绑定参数值。

例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Tree:
    def apple_tree(self):
        print ('这是一棵树',self)
 
# 直接使用类名.函数名调用,由于第一个参数不会自动绑定,会报错 TypeError: apple_tree() missing 1 required positional argument: 'self'
Tree.apple_tree()
 
 
= Tree()
# 为第一个参数绑定参数值
Tree.apple_tree(T)    # 打印 这是一棵树 <__main__.Tree object at 0x0000000002E335F8>
 
 
# 第一个参数绑定的参数值不一定要绑定该Tree类的对象T,例如绑定字符串
Tree.apple_tree('雪梨树')    # 打印 这是一棵树 雪梨树

 

二、类方法和静态方法

使用@classmethod装饰的方法是类方法,python会自动绑定类方法的第一个参数到类本身(参数名通常是cls),可以通过他来传递类的属性和方法,但不能传递实例的属性和方法;使用@staticmethod装饰的方法是静态方法,静态方法不会自动绑定第一个参数到类本身,且静态方法没有‘self’和‘cls’参数,方法中不能使用类或实体的任何属性和方法。

类方法,例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class a:
    a1 = 0
    def c():
        print ('a类的c方法')
    @classmethod
    def b(cls):
        cls.c()
        print (cls.a1)
# 通过类调用,自动绑定类方法的第一个参数,不需要手动去绑定
a.b() 
''' 
打印
a类的c方法
0
'''
 
# 通过实例对象调用
= a()
A.b()
'''
打印
a类的c方法
0
'''   

相关教程