python面向对象编程中类方法和静态方法是怎样的
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本篇文章给大家分享的是有关python面向对象编程中类方法和静态方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天学习pyt
千家信息网最后更新 2024年11月11日python面向对象编程中类方法和静态方法是怎样的
本篇文章给大家分享的是有关python面向对象编程中类方法和静态方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
今天学习python的面向对象编程-类方法和静态方法。
新建一个python文件命名为py3_oop3.py,在这个文件中进行操作代码编写:
#面向对象编程
#类方法和静态方法
class Employee:
raise_amount = 1.04#定义类变量
num_of_emps = 0
def __init__(self,first,last,pay):
self.first = first
self.last = last
self.email = first + '.' + last +'@email.com'
self.pay = pay
Employee.num_of_emps +=1
def fullname(self):
return '{} {}'.format(self.first,self.last)
def apply_raise(self):
self.pay = int(self.pay * self.raise_amount)
#类方法用@classmethod标识符修饰
#cls作为第一个参数用来表示类本身.
#在类方法中用到,类方法是只与类本身有关
#而与实例无关的方法
@classmethod
def set_raise_amt(cls,amount):
cls.raise_amount = amount
#定义一个接收emp String
#返回实例化对象的类方法
@classmethod
def from_emp_str(cls,emp_str):
first,last,pay = emp_str.split('-')
#这里理解为调用
#Employee(first,last,pay)
#并返回
return cls(first,last,pay)
#静态方法用@staticmethod标识符修饰
#就像一个普通的函数
#判断是不是工作日
@staticmethod
def is_workday(day):
if day == 5 or day ==6:
return False
return True
emp_1 = Employee('T','Bag',50000)
emp_2 = Employee('Mc','User',6000)
Employee.set_raise_amt(1.05)
print(Employee.raise_amount)#1.05
print(emp_1.raise_amount)#1.05
print(emp_2.raise_amount)#1.05
#我们调用emp_1.set_raise_amt()
#在打印
Employee.set_raise_amt(1.06)
print(Employee.raise_amount)#1.06
print(emp_1.raise_amount)#1.06
print(emp_2.raise_amount)#1.06
#发现类和实例对象的raise_amount全部跟着改变
#我们打印emp_1的属性信息
print(emp_1.__dict__)
#{'first': 'T', 'last': 'Bag', 'email': 'T.Bag@email.com',
'pay': 50000}
#这里并不包含raise_amount属性
#因为调用类方法set_raise_amt
#修改的是类的变量属性
#定义一个emp string
#调用from_emp_str()
emp_str = 'T-Bag-5000'
new_emp_1 = Employee.from_emp_str(emp_str)
print(new_emp_1.email)#T.Bag@email.com
#调用类Employee静态方法:
import datetime
today = datetime.datetime.today()
print(Employee.is_workday(today))#True
运行结果:
1.051.051.051.061.061.06{'first': 'T', 'last': 'Bag', 'email': 'T.Bag@email.com', 'pay': 50000}T.Bag@email.comTrue
以上就是python面向对象编程中类方法和静态方法是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
方法
对象
静态
编程
实例
属性
变量
文件
更多
标识
标识符
知识
篇文章
跟着
学习
工作
有关
实用
普通
中用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
堡垒之夜如何连接服务器
centos网站服务器
业务网络技术高手
mysql怎么给服务器授权
数据库copy的用法
充分做好网络安全
软件开发职业发展目标
mcpe服务器起床战争
网络安全责任的基本原则
数据库安全怎么保证
绍兴ipfs存储服务器
分布式系统架构数据库
网络安全诈骗教案
中控门禁数据库
北京微采服企腾网络技术有限公司
德儿网络技术有限公司
香港服务器优化需要加速吗
django 生产服务器
网络安全社区巡讲进校
中心小学网络安全教育
服务器怎么对防护
明日之后伊尼山是哪个服务器
小程序和服务器端的通信
服务器giq
链接远程服务器安全登录失败
朝阳区先进网络技术服务品质保障
德儿网络技术有限公司
南京软件开发一部
数据库远程ip访问
网络安全大赛效果图文案