创建和使用类

在面向对象编程中,类是对具有相同属性和行为的一个或
多个对象的抽象描述。
实例是由某个特定的类所描述的一个具体对象。
根据类来创建对象的过程被称为实例化。
面向对象编程的三个特点:封装(信息隐藏)、继承和多态。
注意: 定义类时类名首字母应该大写

init()方法(初始化方法)
  1. 方法init(),类中的函数称为方法。方法init()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。

  2. 类方法调用时,self形参会自动传递。只需要给self后面的形参提供实参值;

  3. 方法init()两个变量都有前缀self。以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。self.name = name获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到当前创建的实例。 self.age = age的作用与此类似。像这样可通过实例访问的变量称为属性。

使用类和实例

通常可以认为首字母大写的名称(如Dog )指的是类,而小写的名称(如my_dog )指的是根据类创建的实例(示例如下)。通过实例对象 对方法进行调用 或者对属性进行访问可以对属性值进行访问和修改(只有非私有的方法和属性才可以)。

class Dog:def __init__(self,name,age):"""初始化属性name和age"""self.name=nameself.age=agedef sit(self):"""模拟小狗被命令时蹲下"""print(self.name.title()+"坐下了")def shout(self):"""模拟小狗大叫"""print(self.name+"叫了!")
dog1=Dog("mary",18)#创建类的实例
dog2=Dog("joy",20)#创建类的实例
dog1.sit()#输出结果:Mary坐下了
dog2.shout()#输出结果:joy叫了!

私有属性和私有方法

私有属性和私有方法的前面需要加上”__”两条下划线,这样该属性和方法就不能被外部所使用,且不能被子类继承(私有属性和私有方法容易引起代码混乱,一般不建议使用)。
"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_object被看作是“私有 的”,在模块或类外不可以使用,不能用’from moduleimport *'导入。当变量是私有的时候,用_object来表示变量是很好的习惯。因为变量名__object__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。
python有关private的描述,python中不存在protected的概念,要么是public要么就是private,但是python中的private不像C++, Java那样,它并不是真正意义上的private,通过name mangling(名称改编(目的就是以防子类意外重写基类的方法或者属性),即前面加上“单下划线”+类名,eg:_Class__object)机制就可以访问private了。
“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如 init

class Fruit:def __init__(self, name, price, shop):self.name = name  # 常规属性对象可以直接打点使用self._shop = shop  # 单下划线属性,打点调用不提示,且可以强制使用self.__price = price  # 双下划线属性,打点调用不提示,且不能强制使用def resetPrice(self, newPrice):self.__price = newPrice#常规方法def info(self):print("在" + self._shop + "此时的" + self.name + "需要" + self.__price + "元/斤")apple = Fruit("苹果", "5.00", "超市")
apple.info()
print(apple.name)#输出结果:苹果(常规方法对象可以直接打点使用)
print(apple._shop)#输出结果:超市(单下划线方法,打点调用不提示,且可以强制使用)
#print(apple.__price)#会报错,原因:'Fruit' object has no attribute '__price'(双下划线属性,打点调用不提示,且不能强制使用)

继承

1、创建子类时,必须在括号内指定父类的名称;
2、super()是一个特殊函数(圆括号不能少),用来引用父
类(即超类);
3、在类中需要使用到的属性,尽量在__init__方法中先进
行定义(同样适用于父类);
4、子类中相同名称的方法和属性,将会覆盖父类中的同
名方法和属性;
5、除非万不得已,应尽量避免使用多重继承(使用多重继
承时,只需要在括号中依次列出父类名即可)。

# 父类
class Fruit:def __init__(self, name, price, shop):self.name = name  # 常规属性对象可以直接打点使用self._shop = shop  # 单下划线属性,打点调用不提示,且可以强制使用self.__price = price  # 双下划线属性,打点调用不提示,且不能强制使用def resetPrice(self, newPrice):self.__price = newPricedef getPrice(self):return self.__price# 常规方法def info(self):print("在" + self._shop + "此时的" + self.name + "需要" + str(self.__price) + "元/斤")# 单下划线方法def _sunOfPay(self, weight):print("一共消费" + str(weight * self.__price) + "元")# 双下划线方法()def __flat(self):print("我是父类,此方法只有我能用,我的子类都用不了")# 子类
class Pear(Fruit):def __init__(self, price, shop, color):super().__init__("梨", price, shop)self.color = color# 重写父类的常规方法(子类能够使用父类的常规方法)def info(self):print("在" + self._shop + "此时的" + self.color + "的" + self.name + "需要" + str(self.getPrice()) + "元/斤")# 重写父类中的保护方法(子类能够使用父类的保护方法)def _sunOfPay(self, weight):print("你买的" + str(weight) + "斤梨子花费了" + str(self.getPrice() * weight) + "元")pear1 = Pear(4.99, "超市", "黄色")
pear1.info()  # 输出结果:在超市此时的黄色的梨需要4.99元/斤
pear1._sunOfPay(3)  # 输出结果:你买的3斤梨子花费了14.97元

类中的方法

# 返回实例pear1是那个类创建的 a.__class__
print(pear1.__class__)  # 输出结果:<class '__main__.Pear'># 返回类Pear的基类a.__bases__
print(Pear.__bases__)  # 输出结果:(<class '__main__.Fruit'>,)# issubclass(a, b):判断类a是否为类b的子类;
print(issubclass(Pear, Fruit))  # 输出结果:True# isinstance(a, b):判断a是否为类b的实例;
print(isinstance(pear1, Fruit))  # 输出结果:True# hasattr(a, „b‟):判断对象a是否包含方法b。
print(hasattr(Pear, 'info'))  # 输出结果:True

在模块中导入类

通过from 模块名(a.py) import 类名(b.class,c.class…) 导入
导入单个:from a import b
导入多个类:from a import b,c,d
导入所有类:from a import *
fruitModule.py文件

# 父类
class Fruit:def __init__(self, name, price, shop):self.name = name  # 常规属性对象可以直接打点使用self._shop = shop  # 单下划线属性,打点调用不提示,且可以强制使用self.__price = price  # 双下划线属性,打点调用不提示,且不能强制使用def resetPrice(self, newPrice):self.__price = newPricedef getPrice(self):return self.__price# 常规方法def info(self):print("在" + self._shop + "此时的" + self.name + "需要" + str(self.__price) + "元/斤")# 单下划线方法def _sunOfPay(self, weight):print("一共消费" + str(weight * self.__price) + "元")# 双下划线方法()def __flat(self):print("我是父类,此方法只有我能用,我的子类都用不了")# 子类1
class Pear(Fruit):def __init__(self, price, shop, color):super().__init__("梨子", price, shop)self.color = color# 重写父类的常规方法(子类能够使用父类的常规方法)def info(self):print("在" + self._shop + "此时的" + self.color + "的" + self.name + "需要" + str(self.getPrice()) + "元/斤")# 重写父类中的保护方法(子类能够使用父类的保护方法)def _sunOfPay(self, weight):print("你买的" + str(weight) + "斤梨子花费了" + str(self.getPrice() * weight) + "元")
# 子类2
class Apple(Fruit):def __init__(self, price, shop, color):super().__init__("苹果", price, shop)self.color = color# 重写父类的常规方法(子类能够使用父类的常规方法)def info(self):print("在" + self._shop + "此时的" + self.color + "的" + self.name + "需要" + str(self.getPrice()) + "元/斤")# 重写父类中的保护方法(子类能够使用父类的保护方法)def _sunOfPay(self, weight):print("你买的" + str(weight) + "斤苹果花费了" + str(self.getPrice() * weight) + "元")

在同一包中的另一模块中导入fruitModule中的类

from fruitModule import Pear,Apple
pear1=Pear(6.00,"水果店","白色")
pear1.info()
pear1._sunOfPay(3.5)
apple1=Apple(5.00,"超市","红色")
apple1.info()
apple1._sunOfPay(2)    

property函数

Python中访问对象的属性可以这么做:实例名.变量名。但是有些人却不同意这种访问方法,他们觉得这样做破坏了封装的原则,对象的状态对于外部应该是隐藏的。因此,Python中更推荐使用私有特性,通过在名字前面加上双下划线,然后getter,setter方法访问这些特性。
然而,将“实例名.变量名”的方式改为使用getter、setter方法将使代码变得更加复杂臃肿。如果有一种方法能够使简单的访问特性又能保持代码的规范性就好了。property正是解决这一问题的方案。
Property函数的定义为:

property(fget=None, fset=None, fdel=None, doc=None)  

其中,fget是获取属性值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc是一个文档字符串。property函数的参数都是可选的,若没有参数,产生的属性既不可读也不可写。若只有一个取值方法,产生的属性是只读的。

class Test:def __init__(self):self._x = Nonedef get_x(self):print("I'm the getter method")return self._xdef set_x(self, value):print("I'm the setter method")self._x = valuedef del_x(self):print("I'm the deleter method")del self._x# 设置doc参数x = property(get_x, set_x, del_x, "I'm the 'x' property.")
# 其实x也是一个类属性,只不过,如果通过了Test的实例t去访问,就会访问到对应的getx setx delx等方法上。  
t = Test()
t.x = '100'  # 等同于t.set_x("100")  输出结果:I'm the setter method
print(t.x)  # 等同于print(t.get_x()) 输出结果:I'm the getter method

事实上,property并不是一个真正的函数,它是拥有许多特殊方法的类:getsetdel。这三个方法合在一起定义了描述符规则。实现了任何一个方法的对象就可称为描述符(descriptor)。当程序读取一个特性时,若该特性被绑定到实现了__get__方法的对象上时,那么就会调用__get__方法

property除了上述这种用法外,还可以使用@property实现相同的功能。


class Test:def __init__(self):self._x = None@propertydef x(self):print("I'm the getter method")return self._x@x.setterdef x(self, value):print("I'm the setter method")self._x = value@x.deleterdef x(self):print("I'm the deleter method")del self._xt = Test()
t.x = '100'  # 等同于t.set_x("100")  输出结果:I'm the setter method
print(t.x)  # 等同于print(t.get_x()) 输出结果:I'm the getter method

类属性(静态属性)

python中并没有像 C语言 C++ java 那样定义静态属性的关键字 static,其实类属性就差不多相当于静态属性.

静态方法和类方法

静态方法(由@staticmethod装饰的方法)、类方法(由
@classmethod装饰的方法),可以被类或类的实例对象调用。
区别:实例方法,第一个参数必须要默认传实例对象,一
般习惯用self。静态方法,参数没有要求。类方法,第一个
参数必须要默认传类,一般习惯用cls。

class Foo(object):"""类三种方法语法形式"""def instance_method(self):print("类{}实例方法,只能被实例对象调用".format(Foo))@staticmethoddef static_method():print("我是静态方法")@classmethoddef class_method(cls):print("我是类方法")
Foo.static_method()#输出结果:我是静态方法
Foo.class_method()#输出结果:我是类方法
为什么不直接使用静态方法?

静态方法是通过类名来操作类属性的写死在程序中,而类方法是通过参数来操作类属性的,如果子类继承了使用静态方法的类,那么子类继承的静态方法还是在操作父类,子类需要重写静态方法才能操作子类,类方法如果被继承,那么类参数会传入子类本身。

class Diff:def __init__(self):print("---")@propertydef dizhi(self):return self.size@staticmethoddef setA():Diff.a = 10@classmethoddef setB(cls):cls.b = 20Diff.setA()
print(Diff.a)#输出结果:10

迭代器

可迭代对象

使用for循环遍历取值的对象叫做可迭代对象, 比如:列表、元组、字典、集合、range、字符串

可迭代的对象说明是可以被迭代(遍历)的,但是只有迭代器可以使用!

什么是迭代器

迭代器是访问可迭代对象的工具
迭代器是指用iter(obj)函数返回的对象(实例)
迭代器是指用next(it)函数获取可迭代对象的数据

list1=[1,2,3,4,5]
it=iter(list1)#让list1提供一个能访问自己的迭代器
print(next(it))#输出结果:1
print(next(it))
print(next(it))
print(next(it))
print(next(it))
迭代器函数(iter和next)

使用 for 循环遍历取值的过程叫做迭代,比如:使用for循环遍历列表获取值的过程。
iter(iterable)从可迭代对象中返回一个迭代器,iterable必须是能提供一个迭代器的对象
、 next(iterator) 从迭代器iterator中获取下一了记录,如果无法获取下一条记录,则触发stoptrerator异常
说明:
1.迭代器只能往前取值,不会后退
2.用iter函数可以返回一个可迭代对象的迭代器

自定义可 迭代 对象
 自定义可迭代对象: 在类里面定义__iter__方法创建的对象就是*可迭代(遍历)对象*
class MyList(object):def __init__(self,age):# 初始化self.age = agedef __iter__(self):# 返回本身return self#说明:这个类是可迭代对象,实现了__iter__ 方法。#到这里只能说明,是可以被迭代(遍历),# 如同现在就是一个列表;可以做为遍历取值的对象。"# 现在它只是迭代器的一部分,只实现了两个方法中的一个。
自定义 迭代器

自定义迭代器对象: 在类里面定义iter和next方法创建的对象就是迭代器对象。
这里同时实现两个方法,所以叫迭代器。

class MyClass(object):"""功能:实现迭代出任意范围数字的值;例如:遍历出1100的数字。"""# 初始化def __init__(self, age):self.age = ageself.num = 0# 作用:把这个类变成一个可迭代对象def __iter__(self):return self# 作用:在迭代(遍历)时,取出下一个值def __next__(self):"""根据条件实现的功能主要是写在这!"""# 判断是否大于遍历的值if self.num >= self.age:# 停止迭代(遍历)raise StopIterationelse:# 继续迭代(遍历)直到满足条件为止self.num += 1return self.num#创建对象
MyClass = MyClass(10)#使用for循环遍历,说明这个类是迭代器。
for x in MyClass:print(x)在这里插入代码片
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 向量之间的叉积

    矢量 有 **量值&#xff08;长度&#xff09;**和 方向&#xff1a; 两个矢量 可以用 "叉积 " 的方法来 “相乘”&#xff08;也去看看 点积&#xff09;) 两个矢量的叉积 a b 是与这两个矢量垂直的 矢量&#xff1a; 1.基本运算 叉积是这样计算的&#xff1a; |a…...

    2024/5/5 19:15:46
  2. python测试:关于面试的一些小总结

    一、前言 测试的面试相对于开发的面试来说&#xff0c;对于技术的询问其实相对来说较少的&#xff0c;主要针对以下几个方面。测试理论&#xff0c;接口&#xff0c;数据库&#xff0c;linux&#xff0c;自动化&#xff0c;性能、个人情况这几大块。二、常见问题 1、软件测试理…...

    2024/5/5 20:45:37
  3. python学习笔记 第四天

    文件的读取和写入 1、open函数用于打开当前目录下指定路径的文件&#xff0c;并将其存储在file_object变量中&#xff1b; 2、关键字with在不需要访问文件’readme.txt’后&#xff0c;会将其自动关闭(你也可以调用close方法来直接关闭文件&#xff0c;但一般建议让python自己…...

    2024/5/4 0:20:15
  4. python将一个excel表格的数据匹配到另一个表中

    打开excel表&#xff0c;需要在另一个表中匹配相应学生姓名的学号信息。 之前尝试了excel中的VLOOKUP函数&#xff0c;试了很多次都没有成功&#xff0c;因此&#xff0c;用python试了一下 import pandas as pd subtrain pd.read_csv(subtrainLabels.csv,\t) #subtrain[:5] x…...

    2024/4/18 10:11:43
  5. 第十一天Python之面向对象基础语法

    目标 dir 内置函数定义简单的类&#xff08;只包含方法&#xff09;方法中的 self 参数初始化方法内置方法和属性 一、dir 内置函数&#xff08;知道&#xff09; 在 python 中 **对象几乎是无处不在的&#xff0c;**我们之前学习的 变量、数据、函数 都是对象 在 python 中…...

    2024/5/5 14:13:06
  6. 前端基础学习-select下拉框实现多选、全选(二)

    这一篇在上文的基础上继续添加另一种全选的方法 总体方法类似 这里直接上效果 初始默认全选 上代码 html <el-form-item label"可全选下拉框2" prop"apply2"><el-select multiple collapse-tags v-model"ruleForm.apply2" change&q…...

    2024/5/3 7:42:59
  7. 淘宝店铺装修添加微博链接

    在店铺装修里面设置&#xff0c;总是显示链接不符合范围。求大神指教。...

    2024/4/26 14:23:02
  8. 4.mybatis之CRUD /一级缓存/二级缓存

    编写接口&#xff0c;增加注解 public interface UserMapper {Select("select * from user")List<User> getUsers();// 方法存在多个参数&#xff0c;所有的参数前面必须加上 Param("id")注解Select("select * from user where id #{id}"…...

    2024/4/30 14:19:53
  9. easycode-反复生产的还是最开始的那套模型

    EasyCode-反复生产的还是最开始的那套模型问题如何解决问题 Database里面的数据已经修改了&#xff0c;但是生成代码的时候&#xff0c;还是之前的内容 如何解决 1、确认database里面的数据是否刷新过来了 2、删除项目的.idea里面的easycode目录下的&#xff0c;xxx.json【对…...

    2024/4/23 15:30:46
  10. 美颜神器——快速集成华为HMS ML Kit人脸检测实现大眼瘦脸

    前言 生活中遇到难忘美好的瞬间&#xff0c;小编总是忍不住用拍照的方式来留住它&#xff0c;相信大家也和我一样。但我们大多数人都不是专业的摄影师或者模特&#xff0c;光线没选好、角度不对等等原因&#xff0c;导致对照片的自己不满意&#xff0c;该怎么办呢&#xff1f;…...

    2024/5/4 23:28:25
  11. CSS3新特性有哪些?

    CSS3新特性 1. animation&#xff1a;动画 2. transition&#xff1a;动画速度 3. transform&#xff1a;变形 4. 伪元素 5. 边框 border-radius 圆角边框box-shadow 盒子阴影border-image 边框背景背景 background-size 背景大小background-origin 背景的起始点background-cl…...

    2024/4/23 13:19:12
  12. test‘1

    NION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意&#xff0c;UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时&#xff0c;每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语...

    2024/4/7 12:15:33
  13. Python+Selenium:随机生成手机验证码,并检查页面上是否弹出重复手机号码提示框

    1、随机生成格式正确手机号码 # 随机产生格式正确的手机号码 def create_phone(self):num_start [134, 135, 136, 137, 138, 139, 150, 151, 152, 158, 159, 157, 182, 187, 188, 147, 130, 131, 132, 155, 156, 185, 186, 133, 153, 180, 189]start random.choice(num_star…...

    2024/4/27 13:51:18
  14. Keras学习笔记6——keras.metrics

    目录可使用的评价函数binary_accuracycategorical_accuracysparse_categorical_accuracytop_k_categorical_accuracysparse_top_k_categorical_accuracy自定义评价函数评价函数用于评估当前训练模型的性能。当模型编译后&#xff08;compile&#xff09;&#xff0c;评价函数应…...

    2024/5/3 9:37:40
  15. Dephi字符转Html字符串

    //推荐使用function StrToHtml(str: string): string;内循环仅使用1次。相比StringReplace&#xff0c;使用[rfReplaceAll]是一个满循环。 function StrToHtml(str: string): string; var i : integer; begin Result: ; for i: 1 to Length(str) do case str[i] of …...

    2024/5/3 4:32:37
  16. 解决PyCharm不在run输出运行结果,而不是再Console里输出

    PyCharm 最近在用PyCharm的时候运行结果总是在Console里输出&#xff0c;而不是在run输出,下面列出解决方法 1.点击工具栏run&#xff0c;再点击Edit Configurations 2.取消勾选Run with Python Console前面的复选框&#xff0c;点击OK 3.正常运行...

    2024/5/3 14:55:23
  17. 第十天Python之面向对象(OOP)基本概念

    面向对象编程—— Object Oriented Programming 简写 OOP 目标 了解 面向对象基本概念 一、 面向对象基本概念 我们之前学习的编程方式就是 面向过程 的面向过程 和 面向对象&#xff0c;是两种不同的 编程方式对比 面向过程 的特点&#xff0c;可以更好的了解什么是 面向对…...

    2024/5/4 12:08:22
  18. C# 重构机房收费系统——入门必看 !指导思想篇

    思想总结如何入手机房重构sqlHelper连接数据库七层的概念解耦思想接口的使用**欢迎大家提出指导意见 共同进步**如何入手机房重构 sqlHelper连接数据库 什么是 sqlHelper&#xff08;数据库助手类&#xff09; SqlHelper用于简化你重复的去写那些数据库连接&#xff08;SqlCon…...

    2024/4/23 15:30:12
  19. 使用FTPClient封装FtpUtil

    1. 新增POM依赖 <!--文件上传--> <dependency><groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId><version>1.3.3</version> </dependency><!--FTPClient--> <depend…...

    2024/5/3 0:37:10
  20. python学习笔记 第一天

    Python的内存管理方式 在python中修改变量值的操作&#xff0c;并不是修改了变量的数值&#xff0c;而是修改了变量指向的内存地址。 首先读取x的值&#xff0c;然后加6&#xff0c;并将结果存放于内存中&#xff0c;最后将x指向该内存空间。 python采用的是基于值的内存管理方…...

    2024/4/29 1:59:59

最新文章

  1. 哪些情况下会触发MySQL的预读机制?

    MySQL的预读机制主要与其底层存储引擎的实现有关&#xff0c;尤其是InnoDB存储引擎。预读&#xff08;Pre-reading&#xff09;或预取&#xff08;Prefetching&#xff09;是一种性能优化技术&#xff0c;其中数据库系统主动读取可能很快就会被查询到的数据页到缓冲池&#xff…...

    2024/5/5 21:16:55
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 通过mapreduce程序统计旅游订单(wordcount升级版)

    通过mapreduce程序统计旅游订单&#xff08;wordcount升级版&#xff09; 本文将结合一个实际的MapReduce程序案例&#xff0c;探讨如何通过分析旅游产品的预订数据来揭示消费者的偏好。 程序概览 首先&#xff0c;让我们来看一下这个MapReduce程序的核心代码。这个程序的目…...

    2024/5/4 3:41:46
  4. WebAR开发简介

    WebAR 开发使企业能够以独特且高度有趣的方式向客户和员工提供信息。 它提供增强现实 (AR) 内容&#xff0c;人们在智能手机上将其视为视觉叠加。 然而&#xff0c;WebAR 可在手机的普通网络浏览器上运行&#xff0c;无需下载任何应用程序。 WebAR 的多种用途包括帮助零售和在…...

    2024/5/4 10:53:48
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/5 18:19:03
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/5 12:22:20
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/5 19:59:54
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/4 23:54:44
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/5 15:25:47
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/4 23:54:49
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/4 23:54:44
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/4 14:46:12
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/5 18:50:00
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/4 14:46:11
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/5 2:25:33
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/4 21:24:42
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/5 13:14:22
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/4 13:16:06
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/5 17:03:52
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/5 21:10:50
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/5 3:37:58
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/4 23:54:30
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/5 17:03:21
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/5 15:25:31
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57