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

#静态属性的作用是吧类的方法隐藏起来(可以把背后的逻辑隐藏起来),让用户感觉是在电泳属性,而不是方法
class Static:
    attribute='属性'
    def __init__(self,parameter1,parameter2,parameter3):
        self.parameter1 = parameter1
        self.parameter2 = parameter2
        self.parameter3 = parameter3
    def test(self):
        return ('test',self.parameter1)

@property
    def print_static(self):
        print(Static.attribute)
        return ('这个是静态属性的结果 %s %s %s'%(self.parameter1,self.parameter2,self.parameter3))

s=Static('hello','world','!')
print(s.test())
print(s.print_static)

静态方法:

#静态方法只是名义上归类管理,不能使用类变量和实例变量,是类的工具包
#我个人的理解是扯虎皮做大旗,静态方法只是借用类的大树下的一个独立函数

class Static:
    attribute='属性'
    def __init__(self,parameter):
        self.parameter=parameter
    def test(self):
        return ('test',self.parameter)

    @staticmethod
    def print_static(a,b,c):
        print(Static.attribute)
        return ('这个是静态方法',a+b+c)

s=Static('hello')
print(s.test())
print(Static.print_static(2,4,6))

类方法:

'''
@classmethod 类方法是通过类里面的函数调用类本身的属性
'''
class Class():
    attribute='类的属性'#类的属性
    def __init__(self,parameter): #这里的self是一个对象
        self.parameter=parameter #实例的属性
    def test(self):
        print(self)
        return  ('类方法测试调用',self.parameter)

    @classmethod#类方法只能调用类属性,不能调用实例属性
    def print_class(cls): #这里的cls是一个类
        print(cls)
        return ('通过类调用类的属性',cls.attribute)

x=Class('实例的属性')
print(x.test())
print(x.parameter)
print(Class.print_class())
print(Class.attribute)

原文地址:http://blog.51cto.com/853056088/2132884

时间: 2024-10-07 06:10:58

python静态属性,静态方法,类方法的相关文章

python面向对象之静态属性/静态方法/类方法/组合

#!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self.Name = name self.Addr = addr self.Type = type def details(self): print("学样的详细信息, 名称:%s 地址:%s 类型:%s" %(self.Name,self.Addr,self.Type) ) c1 = Campus("南

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

静态属性 静态属性就是数据属性,在函数属性上加装饰器@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,

typescript静态属性,静态方法,抽象类,多态

1 /* 2 1.vscode配置自动编译 3 4 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 5 6 7 2.第二步 任务 - 运行任务 监视tsconfig.json 8 9 10 2.typeScript中的数据类型 11 12 typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型 13 14 15 布尔类型(boolean

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

1.静态属性我们知道类既有函数属性又有数据属性,实例只有数据属性,我们在使用实例调用类的函数属性并运行时,总要带上函数后面的括号才能运行,不然总是调用函数的内存地址,如下图所示: 问题:那么我们如何能像调用数据属性一样调用函数属性呢? 类中提供了@property关键字,可以看成@property是一个装饰器,装饰器的作用是调用类的函数属性key值时,直接来运行该key值对应的函数.像是调用类的属性一样来直接调用并运行类的函数,具体操作如:1.1加上@property关键字后,类的函数属性的不同

第二十八篇 静态属性、类方法、静态方法

静态属性 静态属性:实际上说的就是数据属性 需求:每个人都有自己的房子,想知道每个人自己的房子都有多大平米 实现分析:每个人,表示有很多人,不可能一个人写一次计算面积的方法,那么就可以将它提炼出来,放到类里 class Room: tag=1 def __init__(self,name,owner,width,length,heigh): self.name=name self.owner=owner self.width=width self.length=length self.heigh

第49天python学习静态属性 静态方法

#静态属性:就是数据属性#定义个房间类# class Room:# def __init__(self,name,owner,width,length,heigh):# self.name=name# self.owner=owner# self.length=length# self.width=width# self.heigh=heigh## r1=Room("房号1120","zhangshang",10,20,3)# print("%s住的%s房

php中静态属性静态方法的用法

static关键字用来修饰属性.方法,称这些属性.方法为静态属性.静态方法.static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”. 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用.static关键字可以用来修饰变量.方法.不需要经过实例化,就可以直接访问类中static的属性和static的方法.static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法.因

Python类属性和类方法

01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法 __init__ 为 对象初始化 对象创建后,内存 中就有了一个对象的 实实在在 的存在 —— 实例 因此,通常也会把: 创建出来的 对象 叫做 类 的 实例 创建对象的 动作 叫做 实例化 对象的属性 叫做 实例属性 对象调用的方法 叫做 实例方法 在程序执行时: 对象各自拥有自己的 实例属性 调用对象方

类的自动加载,静态属性静态方法

类的自动加载 function 完成类的自动加载    param: $clas_name 是类的名称    说明: 当程序员使用到一个未定义的类时,就会自动的触发__autoLoad这个函数, 该函数是系统提供的 静态变量是属于所有对象,可以被所有对象共享 静态变量与静态方法 静态属性是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量. l  定义静态属性 访问修饰符 static 静态属性名;    stati