公司暴力裁员,不给n+1,只给半个月,还说不接受的话就回到工位上,反正公司没有钱,仲裁就陪你拖。。
哎,真是服了,这年头裁员还能这么耍无赖。作为个Python开发,平时写代码写到秃头,真没想到碰上这事还得学点法律知识。
这公司简直是明摆着欺负人嘛,拿着“我没钱”当挡箭牌,半个月工资打发人,仲裁还威胁拖你一年两年,嘴上这么硬,真以为打工人好欺负?
我觉得啊,别怕,先稳住,继续正常打卡上班,录音、考勤这些证据攒着,哪怕他天天放狠话,咱也装作啥都没听见。趁公司还有点钱赶紧仲裁,别真拖到没法赔了。
社保公积金也查查有没有坑,反正维权就是跟他们耗气,他们也不一定耗得过你。打工人不容易,走的时候至少得把应得的拿回来,别让自己白白吃这个亏。
面试题:@staticmethod和@classmethod
这个问题啊,面试里真是高频选手,基本每次技术面八九不离十得碰一碰。我写Python写了这么多年,自己用也用,面试也问别人,慢慢总结出一套心法。要说@staticmethod和@classmethod的区别,简单一句话就能讲明白——到底要不要用类本身(cls)。但面试嘛,光说这一句不行,得铺开了讲,毕竟咱们程序员最忌讳的就是一知半解。
先说@staticmethod,这个装饰器的意思就是定义一个“跟类没啥关系”的方法。换句话说,写在类里面,但不关心类的状态,也不关心实例的状态,就是个在类命名空间里方便归类的普通函数。比如:
classMathUtils:
@staticmethod
defadd(x, y):
return x + y
这个add方法根本不需要知道自己属于哪个类,也不关心这个类的属性,纯粹是为了逻辑上放在一块更清晰。有人问我,既然这样为啥不直接写成模块级别的函数?其实也行,但如果你一堆数学相关的函数,就想归到MathUtils这种类里,便于组织,不然模块乱成一锅粥。
再说@classmethod,这个有点不一样,它需要接收类本身作为第一个参数,通常叫cls,它可以访问类变量,甚至能改类状态,最重要的一点是它能用来创建实例。经常见的场景就是写工厂方法。来个例子:
classUser:
def__init__(self, name):
self.name = name
@classmethod
deffrom_dict(cls, data):
return cls(data['name'])
这个from_dict方法就很实用,给你一份字典数据,它用cls去构建实例。你要是换个子类继承User,用这个方法返回的也是子类实例,这点很关键,普通的@staticmethod做不到这事。
有些人说,@classmethod能不能干@staticmethod的活?能,甚至干得更多。但是如果方法压根用不着类相关的信息,用@staticmethod反而更清爽,不给自己留后门。咱们写代码,不就是图个明确嘛,谁也不想一堆方法里哪个用类,哪个不用类搞不清楚,维护起来头大。
有面试官喜欢刁一点,问@classmethod能不能当构造器用?当然可以啊,经典的用法就是多个构造函数,不同的输入数据用不同的方法去创建对象,给使用者多一种姿势。像Python的datetime模块就有fromtimestamp这种类方法,大家用得飞起。
顺便再提醒一下,Python里还有个神奇的装饰器叫@property,这个经常跟上面俩一起考,但它是用来把方法伪装成属性用的。比如你写个getter,不用user.get_name(),直接user.name,高端一点的面试官可能会一起考察,问你啥场景该用。
总之吧,@staticmethod是彻底独立的工具函数,@classmethod是可以跟类扯上点关系,能访问类变量、改类状态、建对象。面试时候别光记住定义,最好结合实际说说啥时候用,顺便再举个例子,稳了。
最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek
也可以看我写的这篇文章《DeepSeek满血复活,直接起飞!》来进行本地搭建。
对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》。