来自python3学习笔记,有不正确的地方大家多多指教
一、实例方法
通常情况下,在类中定义的方法都属于实例方法,且类的构造函数也就是int()也属于实例方法。
class Language:
def __init__(self):
self.name = "Python"
self.add = "http//www.baidu.com"
def test(self):
print("这是实例方法")
实例方法中最大的特点就是最少需要包含一个self参数,实例方法可以使用类的实例对象调用或者使用类名调用。
1.类的实例对象调用
class Language:
def test(self):
print("这是实例方法")
if __name__ == '__main__':
l = Language()
l.test()
--输出:
这是实例方法
2.类名调用
如果通过类名直接调用实例方法,如下所示:会出现错误
class Language:
def test(self):
print("这是实例方法")
if __name__ == '__main__':
Language.test()
输出:
image.png在调用的时候缺少self参数,在调用的时候需要传入参数
class Language:
def test(self):
print("这是实例方法")
if __name__ == '__main__':
l = Language()
Language.test(l)
--输出:
这是实例方法
或者使用下面的方法:
class Language:
def test(self):
print(self, "这是实例方法")
if __name__ == '__main__':
Language.test("蜗牛")
--输出:
蜗牛 这是实例方法
二、类方法
类方法与实例方法方法相似,最少需要包含一个参数cls,与实例方法不同的是,类方法前面需要加上@classmethod,如果没有加上@classmethod,则会默认为实例方法,而不是类方法。
类方法的调用
class Language:
@classmethod
def test(cls):
print("这是类方法")
if __name__ == '__main__':
Language.test()
class Language:
@classmethod
def test(cls):
print("这是类方法")
if __name__ == '__main__':
l = Language()
l.test()
三、静态方法
静态方法与函数的差别就是:静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。
静态方法中没有固定的参数self或cls,调用方法有两种:
- 类名.方法名
- 实例化对象
1.类名.方法名调用
class Language:
@staticmethod
def test(name, add):
print("这是静态方法:{0},{1}".format(name, add))
if __name__ == '__main__':
Language.test("Python", "http//baidu.com")
--输出:
这是静态方法:Python,http//baidu.com
2.实例化对象调用
class Language:
@staticmethod
def test(name, add):
print("这是静态方法:{0},{1}".format(name, add))
if __name__ == '__main__':
l = Language()
l.test("Python", "http//baidu.com")
--输出:
这是静态方法:Python,http//baidu.com
class Language:
name = "Python"
add = "http//baidu.com"
@staticmethod
def test(name, add):
print("这是静态方法:{0},{1}".format(name, add))
if __name__ == '__main__':
l = Language()
l.test(l.name, l.add)
--输出:
这是静态方法:Python,http//baidu.com
网友评论