python 为啥我修改列表一个元素会导致所有元素都被修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 为啥我修改列表一个元素会导致所有元素都被修改相关的知识,希望对你有一定的参考价值。

如图,我的每个元素是一个class,我修改SER[1]中的变量会导致SER[2].....SER[x]的值都被改变,这是为什么

sta是所有ser类对象公有的类变量,在一个对象中对其进行修改当然会影响到其他对象中sta的内容。在构造函数中加上self.sta=[]可将sta变为每个对象独立持有的成员变量。 参考技术A 才能明白别人对我的苦心 参考技术B 涨停价是多少

css3的3d旋转为啥会导致元素变大?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
bodymargin: 0;
.box
position: relative;
margin: 0 auto;
width: 1000px;
-webkit-perspective:1000;

ul,limargin: 0;padding: 0;
lilist-style: none;
imgborder:0; vertical-align: bottom;
.box ul
transition:all .5s linear;
transform-style: preserve-3d;
position: relative;

.box ul li
height: 300px;
overflow: hidden;
transition:all .5s linear;
position: absolute;
width: 1000px;
backface-visibility:hidden;

.box ul li:nth-child(1)
transform:rotate3d(0,0,0,0deg);
background-color: green;
z-index: 2;

.box ul li:nth-child(2)
transform-origin:top;
transform:rotate3d(1,0,0,-90deg);
background-color: pink;
top: 300px;

.box:hover ul
transform:rotate3d(1,0,0,90deg);

</style>
</head>
<body>
<div class="box">
<ul>
<li></li>
<li></li>
</ul>
</div>
</body>
</html>

这是demo的完整代码,复制到chrome浏览器中就可以运行,哪位大神帮忙看看是什么原因。
鼠标移上去后粉色的长方形会变得很大,这是为什么?

3d旋转,顾名思义就是立体旋转,涉及到三个轴向,x,y, z,2D旋转只有两个轴向,x,y关键就在z轴呢,我来解释下z轴

z轴就是物体远近,近大远小,所以会使元素看上去会变大,这个是正常的,css3 3D还有个属性就是-webkit-perspective:这个的含义就是景深,就是这个元素离你的眼睛多远,这两个属性有一定的联系,
参考技术A 2个li标签的位置对于XYZ的3轴交汇点有问题,加上3D视角的作用 所以会变大,你写的时候就改在处理2个li的位置的时候以交互点 也就是正中心的轴点为基础追问

能帮我指出具体应该修改哪里吗?我想让元素翻转后还处在原来的位置,轴点应该在重心处,但是我不知道哪个地方导致了轴点不对。

参考技术B 不是元素变大了 而是元素离你更近了, 你可以试着拉远Z轴
顺便推荐你看下3D里面 摄像机的概念
参考技术C 翻转子元素的top值有问题,你的转轴一定要用你用的那么考虑清楚反正后变大问题追问

为什么top值会影响到大小呢?

以上是关于python 为啥我修改列表一个元素会导致所有元素都被修改的主要内容,如果未能解决你的问题,请参考以下文章

为啥初始化列表中的元素数量会导致模棱两可的调用错误?

为啥 foo.append(bar) 会影响列表列表中的所有元素?

List中为啥修改一个值其他值也变

为啥带有pop-method(或del语句)的for循环不会遍历所有列表元素

css3的3d旋转为啥会导致元素变大?

Python为啥不能用列表遍历来删除列表中的相同的元素呢?