类的静态方法@staticmethod

静态方法 @staticmethod
静态方法是定义在类内部的函数,此函数的作用域是类的内部

说明:
  静态方法需要使用 @staticmethod装饰器定义
  静态方法与普通函数定义相同,不需要传入self实例参数和cls参数
  静态方法只能凭借该类或类创建的实例调用
  静态方法不能访问类变量和实例变量(属性)

class A:
    @staticmethod       #静态方法就跟普通函数一样,只不过在类中需要加@staticmethod
    def myadd(a, b):
        return a + b

print(A.myadd(100, 200))
a = A()
print(a.myadd(300, 400))

输出结果:

[email protected]:~/zengsf$ python3 exercise824.py
300
700

原文地址:https://www.cnblogs.com/zengsf/p/9532307.html

时间: 2024-11-03 11:44:36

类的静态方法@staticmethod的相关文章

类中静态方法

要在类中使用静态方法,需在类成员函数前面加上@staticmethod标记符,以表示下面的成员函数是静态函数.使用静态方法的好处是,不需要定义实例即可使用这个方法.另外,多个实例共享此静态方法. # 规范:自己的成员自己去访问,除了类中的方法,类中的方法用对象去访问 # 通过类去访问的有:类属性,静态方法 # 通过对象去访问的有: 对象属性,类中的方法 # 静态方法存在的意义在于不需要创建对象就可以执行该方法 class A(object): country = '中国' def __init_

【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

python类的静态方法和类方法区别

# python类的静态方法和类方法区别 ## 先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. 本文由黄哥python培训黄哥所写. # coding:utf-8 class Foo(object): """类三种方法语法形式""" def instance_method(self): print("是类{}的实例方法,只能被实例对象调用".format(Foo)) @staticmethod def

Python的3个方法:静态方法(staticmethod),类方法(classmethod)和实例方法

Python的方法主要有3个,即静态方法(staticmethod),类方法(classmethod)和实例方法,如下: def foo(x): print "executing foo(%s)"%(x) class A(object): def foo(self,x): print "executing foo(%s,%s)"%(self,x) @classmethod def class_foo(cls,x): print "executing cla

静态方法@staticmethod 属性方法@property

多态 接口重用, 一种接口,多种实现 静态方法@staticmethod 只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性类方法@classmethod 只能访问类变量,不能访问实例变量 属性方法@property 把一个方法变成一个静态属性给参数赋值要重新定义一个同名函数,并且前面加@属性名.setter import os# os.system()# os.mkdir() class Dog(object): def __init__(self,name): self.n

类的静态方法。。。。。

类的静态方法: 第一:类不可以标注static,也就是说没有“静态类”,但是类的成员.方法.块是可以标注static的 比如public class YourClass{ public static int arg0=0; //这是个静态成员 { //这是个静态块 } public static void doSomething(){ //这是个静态方法 }} 第二: 被标注为static的变量及方法可以脱离本类的实例使用,也就是说不需要实例化这个类就可以使用他的静态变量和方法比如常用的:Sys

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数值 echo '<pre/>'; var_dump($var); } 2.类(class)和对象( new Obj) <?php //定义一个人的类,现在还不是对象 class Person { //私有属性 private $eye = '大眼睛'; private $mouth = '小

Js类的静态方法与实例方法区分以及jQuery如何拓展两种方法

上学时C#老师讲到对象有两类方法,静态方法(Static)和实例方法(非Static),当时不理解静态是为何意,只是强记. 后来从事了前端的工作,一直在对类(即对象,Js中严格来说没有类的定义,虽众所周知,这里还是赘述一番,以免产生歧义)的操作上,严重缺乏整体概念,最近看extetnd中再次提到拓展静态方法与实例方法,故而再次百度,才幡然领悟,其实一直有用,只是不知其专业术语呀,哈哈~ 静态方法,属于类的方法,即类可以直接调用的方法.为类所有实例化对象所共用(但不能用实例对象之间调用),所以静态

java多线程并发去调用一个类的静态方法安全性探讨

java多线程并发去调用一个类的静态方法安全性探讨 转自:http://blog.csdn.net/weibin_6388/article/details/50750035 这篇文章主要讲多线程对静态方法访问的数据安全性 总结如下: 1,java在执行静态方法时,会在内存中拷贝一份,如果静态方法所在的类里面没有静态的变量,那么线程访问就是安全的,比如在javaee中服务器必然会多线程的处理请求此时如果设计全局需要调用的静态方法,可用此种设计. 2,java在执行静态方法时,如果使用静态变量,同时