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

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 "/home/34f17b632da0cc986bc0f291c0518783.py", line 8, in <module>
    A.fun(10)
TypeError: fun() missing 1 required positional argument: ‘y‘

1.2 静态方法

   静态方法可以使用实例对象调用,也可以使用类进行调用,他的的特点没有参数限制,定义时需要在函数前加@staticmethod

  

class B():
    @staticmethod
    def fun():
        print(‘hello,word‘)
a=B()
a.fun() #实例调用
B.fun() #类调用
***结果*****
hello,word
hello,word

1.3 类方法:

   可以被类调用,也可以被实例对象调用,实例调用可以给类增加属性,类的属性修改需要通过类进行修改,类方法需要使用关键字cls,定义时候需要在函数前加@classmethod

  

class Student(object):
    school=‘szu‘

    @classmethod
    def printmassage(cls):
        print(cls.school)

s1=Student()
Student.printmassage()
s1.printmassage()
s1.school=‘beijingizhong‘ #为类的实例增加属性,类的实例school本身不改变
print(Student.school)#szu
print(s1.school)#beijingizhong
Student.school=‘shanghaiyizhong‘#通过类对类的属性school做修改,类的属性发生改变
s1.printmassage()  #shanghaiyizhong
*****结果*******
szu
szu
szu
beijingizhong
shanghaiyizhong

2、静态属性

 静态属性。@property。作用就是把类的函数属性,封装成类似数据属性。再调用函数printmassage 时候,必须不带()执行。

class Student(object):
    school=‘szu‘

    @property
    def printmassage(self):
        print(‘aaaa‘)

s1=Student()
s1.printmassage    #aaaa

  

原文地址:https://www.cnblogs.com/dushangguzhousuoli/p/11162129.html

时间: 2024-10-10 20:41:20

类的实例方法、静态方法、类方法及静态属性的相关文章

Java静态属性、静态方法、非静态属性、非静态方法的继承问题简单了解

package com.book.web.controller; /**  * 父类  * @author liweihan  *  */ public class Parent { public String normalStr = "父类非静态属性"; public static String staticStr = "父类静态属性"; public String changeStr = "父类-变量"; public static Stri

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

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

python的类的 静态属性 类方法 静态方法

一.静态属性 静态属性说的就是数据属性 1.定义一个房间的类,求下这个房间的面积 class Room: def __init__(self,name,ower,width,length,heigh): self.Name=name self.Ower=ower self.Width=width self.Length=length self.Heigh=heigh r1=Room("厕所","北爷",2,2,20000)#实例化出来一个实例r1,实例化的过程就是执

Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承

s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一.  Class的基本用法 1.  constructor方法 1 //定义类 2 class Point { 3 constructor(x, y) { 4 this.x = x; 5 this.y = y; 6 } 7 8 toString() { 9 return '(' + this.x +

静态属性、类方法、静态方法

静态属性 静态属性就是数据属性,在函数属性上加装饰器@property,感官会认为是把函数属性转化成数据属性,运用类函数方法不需要加() 封装:把背后的操作逻辑隐藏起来,跟实例绑定 class Hhj: def __init__(self,name,age,face): self.name=name self.age=age self.face=face @property def test(self): print('我是%s 年纪是%s 长得%s' %(self.name,self.age,

类和对象:静态属性、静态方法

在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法.静态属性和静态方法不需要在类被实例化的情况下可以直接使用. 静态属性 与普通的成员属性不同,静态属性属于类本身而不属于类的任何实例.静态属性可以被看做是存储在类当中的全局变量,可以在任何地方通过类来访问它们. 由于静态属性不受任何具体对象的限制,所以不需要建立类实例,而可以直接引用类中的静态属性,使用语法格式如下: 类名称::$静态属性名称 其中,符号”::”被称作范围解析操作符,它可以用于访问静态成员.静态方

PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法 2.什么是抽象类?        

对象方法、类方法、原型方法 &amp;&amp; 私有属性、公有属性、公有静态属性

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>test</title> </head> <body> <script> //对象构造函数 function Atest(name){ //私有属性,只能在对象构造函数内部使用 var class

面向对象的静态属性和静态方法

一,静态属性 静态属性时该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量 定义静态属性:访问修饰符 static 静态属性名 静态属性的访问: 1.在类的内部 self::静态属性名 类名::静态属性名 2.类的外部 如果要在类的外部访问静态属性,静态属性需要时public,否则不能直接访问 访问形式是: 类名::静态属性名 $this和self的区别 1.使用的方式不同 $this-> self:: 2.self