当前位置: 首页 > 科技观察

长见识,让大家看看什么是垃圾代码

时间:2023-03-22 00:24:04 科技观察

之前的文章,在微信群里,我反复强调写函数的时候,不要把所有的参数都放在一个大字典里当参数来回传递。不然时间长了,根本不知道字典里有什么数据:defparse(data):name=data['name']age=data['age']xxx=data['xx']上面是这样写的,对原作者来说确实很简单,但是如果代码是别人维护的,他根本不知道字典里有什么数据。需要层层查找调用链,费时费力。但是真没想到还有比上面更蠢的代码。真是堪称垃圾中的垃圾。让我们看一下下面的代码。现在有一个A类,里面有两千多行代码。还有一个B类,代码三千多行。这两个类中都有一些实例方法,代码有700多行。这些我都忍了。更要命的是,在初始化B类的时候,需要传入一个字典,这个字典有80多个键。并且,它们是这样写的。B类在xxx.py文件中:classB:def__init__(self,query_dict):forkey,valueinquery_dict.items():setattr(self,key,value)....A类在yyy.py文件里面,它的代码是这样写的:...classA:def__init__(self,instance):#instance是classB的实例对象self.__dict__.update(instance.__dict__)defmethod_x(self):print(self.something)...在A类中,像实例方法methid_x()这样的地方很多,直接调用了一些看起来像实例属性的东西,比如上面的self.something。这些看起来像实例属性的东西会直接报PyCharm中没有定义该属性。但它运行没有问题。因为这些东西是B类初始化时传入的字典中的键。外界都在说Python不适合做大型项目,因为规模化之后代码很难维护。看看上面的代码,写的这么鬼,维护方便就鬼了。之前说过:如果是自己写项目的话,用Python又快又好。如果有很多很牛逼的人写项目,用Python也很快很好。如果多人当中,有一个人闹事慢,那就不要用Python,用Java来防止这个人闹事。