python基础之类方法和静态方法

目录
  • 类方法
  • 静态方法
  • 复习
  • 总结

类方法

class People:
    country='China'
    # 类方法 用classmethod来修饰
    @classmethod  #通过标识符来表示下方方法为类方法
    def get_country(cls):  #习惯性使用cls
        return cls.country  #访问类属性
        pass
    pass
print(People.get_country())  #通过类对象去引用
p=People()
print('实例对象访问%s'%p.get_country())  #通过实例对象去访问

class People:
    country='China'
    # 类方法 用classmethod来修饰
    @classmethod  #通过标识符来表示下方方法为类方法
    def get_country(cls):  #习惯性使用cls
        return cls.country  #访问类属性
        pass
    @classmethod
    def change_country(cls,data):
        cls.country=data  #修改类属性的值在类方法中
    pass
print(People.get_country())  #通过类对象去引用
p=People()
print('实例对象访问%s'%p.get_country())
People.change_country('英')
print(People.get_country())

静态方法

class People:
    country='China'
    # 类方法 用classmethod来修饰
    @classmethod  #通过标识符来表示下方方法为类方法
    def get_country(cls):  #习惯性使用cls
        return cls.country  #访问类属性
        pass
    @classmethod
    def change_country(cls,data):
        cls.country=data  #修改类属性的值在类方法中
    pass
    @staticmethod
    def getData():  #无需传参数
        return People.country
    pass
print(People.getData())   #可以访问

# print(People.get_country())  #通过类对象去引用
p=People()
print(People.getData())   #可以访问  注意 一般情况下 我们不会通过实例对象去访问静态方法

为什么要使用静态方法呢?
由于静态方法主要来存放逻辑性的代码 本身和类以及实例对象没有交互
也就是说 在静态方法中 不会涉及到类中方法和属性的操作
数据资源能够得到有效的充分利用

# demo 返回当前的系统时间
import time #引入时间模块
class TimeTest:
    def __init__(self,hour,min,second):
        self.hour=hour
        self.min=min
        self.second=second
    @staticmethod  #直接定义为静态方法 不需要实例属性
    def showtime():
        return time.strftime('%H:%M:%S',time.localtime())
    pass
print(TimeTest.showtime())
t=TimeTest(2,10,15)
print(t.showtime())  #无必要 直接使用静态方法 输出仍是导入时间

复习

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python基础之函数的定义和调用

    # 第一题 # 写函数,接受n个数字,求这些参数数字的和 def sumFunc(*args): # 处理接受的数据 result=0 for item in args: result+=item pass return result pass # 调用 rs=sumFunc(1,2,3,4) print('rs={}'.format(rs)) #填坑法 format格式化输出 # 写函数找出传入的列表或元组的奇数位对应的元素,并返回一个新的列表 def processFunc(con): li

  • python基础之类型转换函数

    类似于and操作 类似于or操作 # 类型转换 # sorted li=[2,45,1,67,23,10] li.sort() #list的排序方法 print(li) # sorted li=[2,45,1,67,23,10] # li.sort() #list的排序方法 print(li) # sorted() sorted(li) print(li) # 类型转换 # sorted li=[2,45,1,67,23,10] # li.sort() #list的排序方法 print(li)

  • python基础之内置函数

    https://docs.python.org/3/library/function.html #python官方网址 # 取绝对值 print(abs(-34)) # 取参数的近似值,精度与版本有关 print(round(3.66)) # 求次方 print(3**5) print(pow(3,5)) #求3的5次方 # max求最大值 print(max([23,123,13455,14664345,243565])) # eval 执行表达式 a,b,c=1,2,3 print('动态执

  • python基础之集合

    # set 不支持索引和切片,是一个无需的不重复得到容器 # 类似于字典,但是只有key 没有value # 创建集合 dic1={} set1={1,2,3} print(type(set1)) print(type(dic1)) dic1={} set1={1,2,3} print(type(set1)) print(type(dic1)) set1.add('python') #添加数据 print(set1) # 清空操作 set1.clear() print(set1) set1={1

  • python基础之模块的导入

    import导入模块 import time #导入的时模块中的所有内容 print(time.ctime()) #调用模块中的函数 # import 到首次导入模块的时候,会发生如下3步操作 # 1.打开模块文件 # 2.执行模块对应的文件 将执行过程中产生的名字都丢到模块的名称空间 # 3.在程序中会有一个模块[可以取别名的]的名称只想模块的名称空间区 # 4.建立模块时,不要与模块名相同,否则系统会直接就近在文件中查找,而不是导入真正的模块 # 引用格式:模块名:函数名 可以防止不同模块中

  • python基础之多态

    目录 多态 案例演示 总结 多态 多态:顾名思义九四多种形态\状态,就是同一种行为对不同的子类[对象]有不同的行为表现 要想实现多态 必须有两个前提需要遵守: 1.必须存在一种继承关系,必须发生在父类和子类之间 2.重写:子类重写父类的方法 多态的优点: 多态可以增加程序的灵活性 增加程序的扩展性 只要具备某种方法,无论继承者是谁,定义者是谁,都可以去调用 案例演示 class Animal: def say_who(self): ''' 父类[基类] :return: ''' print('你

  • python基础之错误和异常处理

    import Exception # except 在捕获错误异常的时候 是要根据具体的错误类型来捕获的 # 用一个块 可以捕获多个不同类型的异常 # EXception 可以捕获所有异常 当对出现的问题或者错误不确定的情况下 可以使用此种 print(dir(Exception)) try: # print(b) #捕获逻辑的代码 li=[1,2,3,4] print(li[10]) pass except NameError as msg: # 捕获到的错误 才会在这里执行 print(ms

  • python基础之类方法和静态方法

    目录 类方法 静态方法 复习 总结 类方法 class People: country='China' # 类方法 用classmethod来修饰 @classmethod #通过标识符来表示下方方法为类方法 def get_country(cls): #习惯性使用cls return cls.country #访问类属性 pass pass print(People.get_country()) #通过类对象去引用 p=People() print('实例对象访问%s'%p.get_count

  • Python基础-特殊方法整理详解

    目录 1.概述 2.常用特殊方法及实现 2.1 _len__() 2.2 __str__() 2.3 __iter__() 2.4 __getitem__() 2.5 __new__() 2.6 使用__new__()实现单例模式 2.7 __call__() 2.8__enter__() 2.9 __add__() 2.10 __del__() 1.概述 python中特殊方法(魔术方法)是被python解释器调用的,我们自己不需要调用它们,我们统一使用内置函数来使用.例如:特殊方法__len

  • Python基础知识方法重写+文件处理+异常处理

    目录 一.方法重写 二.运算符重载 三.文件处理 打开关闭文件 文件读写 四.异常处理 异常 抛出异常 最后 前言; Python基础知识+结构+数据类型 Python基础学习列表+元组+字典+集合 Python基础学习函数+模块+类 今天给大家分享的是第四篇,前面几篇我都放在上面了.小伙伴可以自己巩固复习 一.方法重写 print("-------------方法重写------------"); # coding=utf-8 class Parent: # 定义父类 def myM

  • Python基础学习之函数方法实例详解

    本文实例讲述了Python基础学习之函数方法.分享给大家供大家参考,具体如下: 前言 与其他编程语言一样,函数(或者方法)是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. python的函数具有非常高的灵活性,可以在单个函数里面封装和定义另一个函数,使编程逻辑更具模块化. 一.Python的函数方法定义 函数方法定义的简单规则: 1. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 2. 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 3.

  • python基础_文件操作实现全文或单行替换的方法

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 1.替换文本中的taste 为 tasting Yesterday when I was young 昨日当我年少轻狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue #将文件读取到内存中 with open("./fileread.txt","r",encoding

  • Python 基础教程之闭包的使用方法

    Python 基础教程之闭包的使用方法 前言: 闭包(closure)是函数式编程的重要的语法结构.函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式).在面向过程编程中,我们见到过函数(function):在面向对象编程中,我们见过对象(object).函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability).闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性. 不同的语言实现闭包的方式不同.Python以函数对象为基础,为闭

  • Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解

    1.Python requests模块说明 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码. 在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作. 现代,国际化

  • 解析python 类方法、对象方法、静态方法

    python中实现静态方法和类方法都是依赖于python的修饰器来实现的. 对象方法有self参数,类方法有cls参数,静态方法是不需要这些附加参数的. 1.我们已经讨论了类/对象可以拥有像函数一样的方法,这些对象方法与函数的区别只是一个额外的self变量 # -*- coding:utf-8 -*- #!/usr/bin/python # Filename: method.py class Person: grade=1 def __init__(self,name): self.name =

  • 一文带你了解Python 四种常见基础爬虫方法介绍

    一.Urllib方法 Urllib是python内置的HTTP请求库 import urllib.request #1.定位抓取的url url='http://www.baidu.com/' #2.向目标url发送请求 response=urllib.request.urlopen(url) #3.读取数据 data=response.read() # print(data) #打印出来的数据有ASCII码 print(data.decode('utf-8')) #decode将相应编码格式的

  • python基础知识之私有属性和私有方法

    私有权限 面向对象三大特性:封装.继承.多态 封装的意义: 将属性和方法放到一起做为一个整体,然后通过实例化对象来处理: 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了: 对类的属性和方法增加 访问权限控制. 私有权限:在属性名和方法名 前面 加上两个下划线 __ 类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问: 类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问: 私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用.

随机推荐