技术标签: python Python编程:从入门到实践(笔记) 开发语言
使用类几乎可以模拟任何东西
根据Dog类创建每个实例都将存储名字和年龄,赋予每条小狗蹲下和打滚的能力;
# 定义一个名为Dog的类
class Dog:
"""一次模拟小狗的简单尝试"""
# 类中的函数称为方法:方法__init__();
# 方法__init__()定义成包含三个形参:self、name、和age;
# 形参self必不可少,必须位于其他形参的前面;
# 通过实参向Dog()传递名字和年龄,self会自动传递
def __init__(self, name, age):
"""初始化属性name和age"""
# 获取与行参name和age相关的取值,并将其赋给变量name和age,然后该变量关联到当前创建的实例;
self.name = name
self.age = age
def sit(self):
"""模拟小狗收到命令时蹲下"""
print(f"{self.name} is now sitting.")
def roll_over(self):
"""模拟小狗收到命令时打滚"""
print(f"{self.name} rolled over!")
9.1.2 :根据类创建实例
可将类视为有关如何创建实例的说明。Dog类是一系列说明,让python知道如何创建表示特定小狗的实例。
# 定义一个名为Dog的类
class Dog:
"""一次模拟小狗的简单尝试"""
# 类中的函数称为方法:方法__init__();
# 方法__init__()定义成包含三个形参:self、name、和age;
# 形参self必不可少,必须位于其他形参的前面;
# 通过实参向Dog()传递名字和年龄,self会自动传递
def __init__(self, name, age):
"""初始化属性name和age"""
# 获取与行参name和age相关的取值,并将其赋给变量name和age,然后该变量关联到当前创建的实例;
self.name = name
self.age = age
def sit(self):
"""模拟小狗收到命令时蹲下"""
print(f"{self.name} is now sitting.")
def roll_over(self):
"""模拟小狗收到命令时打滚"""
print(f"{self.name} rolled over!")
# 让python创建一条名字为'Willie'、年龄为6的小狗。
my_dog = Dog('Willie', 6)
your_dog = Dog('Lucy', 3)
my_dog.sit()
my_dog.roll_over()
# 编写了如下代码来访问my_dog的属性name和age的值;
print(f"\nMy dog's name is {my_dog.name}")
print(f"My dog is {my_dog.age} years old.")
my_dog.sit()
print(f"\nYour dog's name is {your_dog.name}.")
print(f"Your dog is {your_dog.age} years old.")
your_dog.sit()
运行结果:
Willie is now sitting.
Willie rolled over!My dog's name is Willie
My dog is 6 years old.Willie is now sitting.
Your dog's name is Lucy.
Your dog is 3 years old.
Lucy is now sitting.
可使用类来模拟现实世界中的很多情景。类可执行修改实例的属性,也可编写方法来特定的方式进行修改。
编写一个表示汽车的类,它存储了有关汽车的信息,还有一个汇总这些信息的方法:
class Car:
"""一次模拟汽车的简单尝试"""
# 定义方法,该方法还包含另外三个形参:make、model和year
def __init__(self, make, model, year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
# 定义一个名为get_descriptive_name的方法,它使用属于year、make和model创建一个对汽车进行描述的字符串;
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = f"{self.year} {self.make} {self.model}"
return long_name.title()
# 根据Car类创建一个实例,并将其赋给变量my_new_car;
my_new_car = Car('audi', 'a4', 2019)
print(my_new_car.get_descriptive_name())
创建实例时,有些属性无须通过行参来定义,可在方法 __init__()中为其指定默认值;
class Car:
def __init__(self, make, model, year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
# 添加一个名为odmeter_reading的属性,其初始值总是为0
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = f"{self.year} {self.make} {self.model}"
return long_name.title()
# 定义一个名为read_odometer的方法
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print(f"This car has {self.odo
文章浏览阅读1.3w次。XRDP远程连接错误总结XRDP无法连接,出错信息如下:解决方案:sudo gedit /etc/xrdp/sesman.inisudo gedit /etc/xrdp/sesman.ini在末尾加上:param8=-SecurityTypesparam9=None然后重启xrdp服务:sudo service xrdp restartReference:htt..._libxrdp_force_read: header read error
文章浏览阅读2.6k次,点赞12次,收藏65次。Java面试题之:Java算法一、二分查找一、二分查找 二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。..._排序 选择题 java
文章浏览阅读2.9k次,点赞4次,收藏17次。MySQL ERROR 3948 (42000) ERROR 2068 (HY000)需要导入到MySQL的数据如下:nameownerspeciessexbirthdeathFluffyHaroldcatf1993-02-04ClawsGwencatm1994-03-17BuffyHarolddogf1989-05-13FangBennydogm1990-08-27BowserDianedogm1979_客户端mysql报3948
文章浏览阅读1.1w次,点赞35次,收藏115次。关于DPM模型的设置,文章十六给出了一个简单的案例,文章十七介绍了DPM离散相界面的设置,本文通过一个案例来介绍DPM模型中Injection界面的设置,主要是颗粒粒径分布的设置。1 概念介绍DPM适用条件:DPM模型只适用于颗粒相体积分数小于10%,同时不考虑颗粒体积。不考虑颗粒和颗粒之间的相互作用力,但可以考虑颗粒和流体之间的相互作用。 ..._dpm模型
文章浏览阅读516次。在SpringMVC框架中,使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果我们要在我们自己封装的Utils工具类中或者非controller普通类中使用@Autowired注解注入Service或者Mapper接口,直接注入是不...
文章浏览阅读253次。为了解决网络拓扑发生变化时网络收敛所需时间比较长的问题,可以采用快速生成树技术(RSTP)。RSTP的标准为IEEE 802.1w,它改进了STP,缩短了网络的收敛时间。RSTP的收敛速度最快可以缩短到1秒之内,在拓扑发生变化时能快速恢复网络的连通性。_交换机rstp日志
文章浏览阅读464次。文章目录内核对象管理架构代码分析参考资料:RTT官网文档关键字:分析RT-Thread源码、stm32、RTOS、对象管理器。内核对象管理架构RT-Thread 采用内核对象管理系统来访问 / 管理所有内核对象,内核对象包含了内核中绝大部分设施,这些内核对象可以是静态分配的静态对象,也可以是从系统内存堆中分配的动态对象。通过这种内核对象的设计方式,RT-Thread 做到了不依赖于具体的..._#define _obj_container_list_init(c) \ {&(rt_object_container[c].object_list)
文章浏览阅读1.5k次,点赞3次,收藏9次。以jsp前端页面完成的一个小项目,准备工作:1.新建一个项目勾选web配置一些东西点进去找到后点击我们自己创建的lib目录,这里面保存的是我们的jar包,然后会把lib勾选,点击apply,点击OK,然后配置Tomcat,我的Tomcat服务器是8.5.4版本的我的jar包:一个小技巧,修改idea的背景图片:找到设置找到background image点进去就可以选择想要替换的背景..._前后端小型项目
文章浏览阅读79次。webshell:通过网站端口对网站服务器的某种程度上的权限,也被称为网站的后门工具。webshell是web入侵的脚本攻击工具,它是一个asp或php木马后门。在入侵一个网站后,将这些asp或php木马后门放在网站服务器的web目录中,与正常的网页文件混在一起。然后用web的方式,通过这些asp或php木马后门控制网站服务器,进行一些上传下载文件 查看数据库 执行任意程序命令。再通过dos命令..._webshell学习
文章浏览阅读1.5k次,点赞33次,收藏15次。对话框是 GUI程序设计中不可或缺的组成部分,很多不能或者不适合放入主窗口的功能组件都必须放在对话框中。
文章浏览阅读190次。你,能保护好你的钱吗?(为更好理解这篇文章的内容,建议新人浏览前面几篇文章打个底,它会完善你对钱的认知)前面的文章里,提过一个事实,要变得有钱,我们就要攒资产!|资产|资产是指能够不断增值,为你提供被动收入的东西。比如房子、店铺,再比如你持有的优质公司的股票或者基金。每年都能给你带来增值收益,这些都属于资产。努力赚钱,把钱变成资产,再让资产复利形成更多的资产,为自己赚钱,也就是常说的睡后收入。过去几十年,对于多数人来说,增值效果最好的两...
文章浏览阅读157次。1.KNN算法特点描述优点:精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型。2.KNN思想 对于一个给定的数据集,对于未知数据分类时,总是能够通过计算该点与其他数据点的距离(这个距离可以是欧式距离,也可以是闵氏距离,不加以限定),通过寻找该点的最邻近的K个数据点中的数量最多的数据点,来确定该数据点的分类。 实际上这是一种朴素贝叶斯的_from g\2022-2023\machinelearninginaction3x-master\ch02 import knn