类方法、实例方法和静态方法

类方法、实例方法和静态方法,实质是内存空间不一样,三种方法的创建和调用需要注意,同样的,类属性和实例属性,类对象和实例对象都需要理解,公有属性可以设置为类属性,特有属性可以设置为实例属性,类方法、实例方法和静态方法都放在类对象中,实例对象可直接调用。

 1 # coding:utf-8
 2
 3 class Province(object):
 4     country = "中国" # 类属性
 5
 6     def __init__(self,name):
 7         self.name = name
 8
 9     # 实例方法
10     def print_message(self):
11         print("实例方法")
12
13     # 类方法
14     @classmethod
15     def print_msg(cls):
16         print("类方法")
17
18     # 静态方法
19     @staticmethod
20     def print_staticmethod():
21         print("静态方法")
22
23
24 p = Province("湖南省") # 创建一个实例对象,首先调用__new__方法开辟内存空间,之后调用__init__方法进行初始化
25 p.print_message()
26 p.print_msg()
27 p.print_staticmethod()
28
29 Province.print_msg()
30 Province.print_staticmethod() # 从以上可以看出,实例对象可以调用三种方法,而类对象只能调用类方法和静态方法
31
32 print(p.__class__.country)
33 print(Province.country) # 从以上可以看出,实例对象和类对象都可以调用类属性,只是在所区别而已
34
35     

原文地址:https://www.cnblogs.com/eric818/p/10201708.html

时间: 2024-08-13 10:45:05

类方法、实例方法和静态方法的相关文章

Python的类实例方法,类方法,类静态方法

以下面的类定义为例: # coding:utf-8 class A: count = 0 def __init__(self, inst_name): self.inst_name = inst_name self.__class__.count += 1 def inst_method(self): print '实例(%s):%s' % (self.__class__.count, self.inst_name) @classmethod def class_method(cls): pri

python 类属性 实例属性 类方法 实例方法 静态方法(转载)

本文是转载,纯粹是为了方便后面自己查看,建议还是看原文的:http://www.cnblogs.com/dolphin0520/archive/2013/03/29/2986924.html 一.先来谈一下类属性和实例属性 在前面的例子中我们接触到的就是类属性,顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似.对于公有的类属性,在类外可以通过类对象和实例对象访问. class people: name = 'j

python3类方法,实例方法和静态方法

今天简单总结下python的类方法,实例方法,静态方法. python默认都是实例方法,也就是说,只能实例对象才能调用这个方法. 那是不是说类方法也只能被类对象本身来调用呢,当然,不是.类方法既可以被类对象调用,也可以被实例对象调用.你可以这样理解,假设我现在定义的是'dog狗',它有一个类方法'啃骨头',那么对于所有的狗是不是都可以调用啃骨头这个方法,既然这样,我现在创建一个'旺财'实例,它也同样可以去啃骨头,也就是能调用这个类方法. 静态方法你可以理解为参数可以随意设置的方法,类对象和实例对

类的实例方法、静态方法、类方法及静态属性

1.类的方法,按照调用方式可以分为3种,实例方法.静态方法.和类方法 1.1 实例方法   实例方法只能通过实例对象调用,不能通过类进行调用.实例方法再定义时候使用关键字self,self代表实例对象本身. class A(): x=100 def fun(self,y): self.x+=y a=A() a.fun(10) print(a.x) A.fun(10) *****结果****** 110 Traceback (most recent call last): #类调用错误 File

【day25】类方法classmethod、静态方法staticmethod、普通方法

  普通方法:通过实例传参数进行调用的方法.s = 类(参数) 静态方法staticmethod:如果我们想写仅仅与类交互而不是与实例交互的方法,用类方法就可以达成,好处是不让类代码的关系到类定义的外面,也避免了今后代码维护的困难. class Foo: def __init__(self): pass @staticmethod def say_hi(self): print('hi,im staticmethod') Foo.say_hi() #不用实例化,就可以调用该方法 #输出hi,im

JNI/NDK开发指南(六)——C/C++访问Java实例方法和静态方法

转载请注明出处:http://blog.csdn.net/xyang81/article/details/42582213 通过前面5章的学习,我们知道了如何通过JNI函数来访问JVM中的基本数据类型.字符串和数组这些数据类型.下一步我们来学习本地代码如何与JVM中任意对象的属性和方法进行交互.比如本地代码调用Java层某个对象的方法或属性,也就是通常我们所说的来自C/C++层本地函数的callback(回调).这个知识点分2篇文章分别介绍,本篇先介绍方法回调,在第七章中介绍本地代码访问Java

python中的实例方法、静态方法和类方法

对于python中类的这三种方法,之前一直都不清楚其中的差别,最近阅读了<编写高质量代码 改善python程序的91个建议>,颇受启发,现在写出来分享下. 先看下面的一段代码 1 # !/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 class A: 5 name = "A class" 6 7 def instance_method(self): 8 print "this is instance fun&quo

python——实例方法、静态方法、类方法、类变量和实例变量浅析

概述: 实例方法就是类的实例能够使用的方法. 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使用装饰器@staticmethod定义静态方法.类对象和实例都可调用静态方法. 类方法是将类本身作为对象进行操作的方法.类方法使用@classmethod装饰器定义,其第一个参数是类,约定写为cls.类对象和实例都可以调用类方法. super用来执行父类中的函数. 类变量定义在类的定义之后,实例变量则是以为self.开头. 如何调用父类的构造函数:子类(派生类)并不会自

python中的实例方法、静态方法、类方法、类变量和实例变量

http://www.jb51.net/article/49402.htm 注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: 复制代码 代码如下: class Foo:    def __init__(self, name):        self.name = name    def hi(self):        print self.name if __name__ == '__main__':    foo01 = Foo('letian')