python 中的实例方法,静态方法以及类方法
2018-02-08 11:24
330 查看
实例方法:
如其名,实例方法就是实例所用的方法。class Foo(object): def __init__(self,name): self.name = name #一个打招呼的实例方法 def hello(self): print("good morning,{0}".format(self.name)) if __name__ == '__main__': person = Foo("Michael") print(type(person)) person.hello() [out] <class '__main__.Foo'> good morning,Michael
实例方法:实例对象可调用,类不可调用。实例方法的第一个参数 self 代表实例本身,这是python中的一个约定
静态方法:
静态方法其实就是一种普通函数,只不过是在类定义的命名空间中,并不会对实例进行操作。静态方法使用 @staticmethod进行装饰, 类和实例都可以调用该方法。class Foo(object): def __init__(self,name): self.name = name #一个打招呼的静态方法 @staticmethod def hello(): print("good morning") if __name__ == '__main__': Foo.hello() person = Foo("Michael") print(type(person)) person.hello() [out] good morning <class '__main__.Foo'> good morning
类方法:
类方法与实例方法很相似,只不过类方法传入的是一个类,使用 @classmethod进行装饰 。对于类方法来说,类可以调用,实例也可以调用。class Foo(object): def __init__(self,name): self.name = name @classmethod def hello(cls,name): print("good morning,%s"%name) if __name__ == '__main__': Foo.hello("Michael") person = Foo("Michael") print(type(person)) person.hello("Mary") [out] good morning,Michael <class '__main__.Foo'> good morning,Mary
说了这三种方法,也顺便说一下关于类变量与实例变量:
类变量就是供类使用的变量,实例变量就是供实力使用的变量。
class Foo(object): def __init__(self,name): self.name = name school = "五道口" if __name__ == '__main__': print('类变量:%s'%Foo.school) person = Foo("mary") print('实例访问类变量:%s'%person.school) print("实例变量:%s"%person.name) person.school = "圆明园技工" print('类变量被实例化成实例变量:%s'%person.school) [out] 类变量:五道口 实例访问类变量:五道口 实例变量:mary 类变量被实例化成实例变量:圆明园技工
类变量可以被类和实例访问,类访问并可以改变类变量的值,当实例访问类变量并试图改变类变量时,python会将类变量实例化成一个实例变量来进行改变,而原类变量不会被改变。
相关文章推荐
- Python2.7 以及 Python 3.5的实例方法,类方法,静态方法之间的区别及调用关系
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- Python实例方法、静态方法、类方法
- python中的实例方法、静态方法、类方法、类变量和实例变量
- python中类方法、实例方法和静态方法
- ehcache 创建创建单一实例与否的判断,以及,哪个静态方法,只在不存在的时候创建
- [Python] 类方法、实例方法和静态方法的定义方式与区别
- Python学习笔记——实例方法和静态方法
- Python类中实例方法、类方法及静态方法的调用区别
- Python中的类属性和实例属性以及静态方法和类方法
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- Java静态初始化,实例初始化以及构造方法
- 2 Python 类,实例,静态方法
- python方法的分类(实例方法、类方法、静态方法)
- Python的类方法,静态方法,实例方法的区别
- Python类方法、静态方法与实例方法
- Python中静态方法 类方法 实例方法的不同
- Spring学习之使用静态工厂方法以及实例工厂方法配置bean
- Python 类属性,实例属性,类方法,实例方法,静态方法
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析