网站优化锚文本链接之精髓,火车头更新wordpress,网站首页没排名但内页有排名,装修报价单明细表面向对象编程中#xff0c;编写表示现实世界中的事物和情景的类#xff08;class#xff09;#xff0c;并基于这些类来创建对象#xff08;object#xff09;。根据类来创建对象称为实例化#xff0c;这样就可以使用类的实例#xff08;instance#xff09;
一、创建…面向对象编程中编写表示现实世界中的事物和情景的类class并基于这些类来创建对象object。根据类来创建对象称为实例化这样就可以使用类的实例instance
一、创建类
class Dog:def __init__(self, name, age):初始化属性 name 和 ageself.name nameself.age agedef sit(self):模拟小狗收到命令时坐下print(f{self.name} 坐下)def roll_over(self):模拟小狗收到命令时打滚print(f{self.name} 打滚)
Dog 类创建的每个实例都将存储名字和年龄而且每条小狗都有坐下sit()和打滚roll_over()的能力。 __init__() 方法类中的函数称为方法__init__() 是一个特殊方法每当根据 Dog 类创建新实例时Python 都会自动运行它。在这个方法的名称中开头和末尾各有两个下划线这是一种约定可以避免 Python 默认方法与普通方法发生名称冲突。务必确保 __init__() 的两边都有两个下划线否则当你使用类来创建实例时将不会自动调用这个方法。 __init__() 方法定义成包含三个形参self、name 和 age。在这个方法的定义中形参 self 必不可少而且必须位于其他形参的前面。 当 Python 调用这个方法来创建 Dog 实例时将自动传入实参 self。每个与实例相关联的方法调用都会自动传递实参 self该实参是一个指向实例本身的引用让实例能够访问类中的属性和方法。当我们创建 Dog 实例时Python 将调用 Dog 类的 __init__() 方法。我们将通过实参向 Dog() 传递名字和年龄self 则会自动传递不需要我们来传递。 在 __init__() 方法内定义的两个变量都有前缀 self 。以 self 为前缀的变量可供类中的所有方法使用可以通过类的任意实例来访问。self.name name 获取与形参 name 相关联的值并将其赋给变量 name然后该变量被关联到当前创建的实例。像这样可通过实例访问的变量称为属性。 Dog 类还定义了另外两个方法sit() 和 roll_over() 。由于这些方法执行时不需要额外的信息因此只有一个形参 self。
二、创建实例
在上述创建类的基础上我们可以根据类来创建类的实例
my_dog Dog(LL, 3)
这样就创建好实例了接下来可以使用它的方法和属性了。
1、访问属性
my_dog.age
2、调用方法
my_dog.sit()
my_dog.roll_over()
三、使用类和实例
1、创建时给定属性默认值
class Car:def __init__(self, make, model, year):self.make makeself.model modelself.year yearself.meter 0 # 默认为0def update_meter(self, mile):self.meter mile
2、修改属性的值
修改属性的值主要有三种方法通过实例修改通过方法设置以及通过方法递增增加特定的值。
实例修改
my_car Car(aaa, a8, 2025)
my_car.meter 100# 实例 my_car 中找到属性 meter并将其值设置为 100
方法修改
my_car Car(aaa, a8, 2025)
my_car.update_meter(200)
属性的值递增修改也是使用实例的方法进行修改可以试试。
四、继承 要编写的类是一个既有的类的特殊版本可使用继承。当一个类继承另一个类时将自动获得后者的所有属性和方法。原有的类称为父类而新类称为子类。子类不仅继承了父类的所有属性和方法还可定义自己的属性和方法。
1、子类的 __init__() 方法 在既有的类的基础上编写新类通常要调用父类的 __init__() 方法。这将初始化在父类的 __init__() 方法中定义的所有属性从而让子类也可以使用这些属性。
class Car:def __init__(self, make, model, year):初始化描述汽车的属性self.make makeself.model modelself.year yearself.meter 0def get_descriptive_name(self):long_name f{self.year} {self.make} {self.model}return long_name.title()def read_meter(self):print(f这车开了 {self.meter} km)def update_meter(self, mile):if mile self.meter:self.meter mileelse:print(只能增加不能减少的孩子)def increment_meter(self, miles):self.meter milesclass ElectricCar(Car):电动汽车def __init__(self, make, model, year):初始化父类的属性super().__init__(make, model, year)my_uu ElectricCar(BYD, UU, 2025)print(my_uu.get_descriptive_name())电动汽车是汽车的子类具备 Car 类的所有功能。在定义子类时必须在括号内指定父类的名称。__init__() 方法接受创建 Car 实例所需的信息super() 是一个特殊的函数让我们能够调用父类的方法。父类也称为超类。
2、给子类定义属性和方法
class ElectricCar(Car):电动汽车def __init__(self, make, model, year):初始化父类的属性super().__init__(make, model, year)my_uu ElectricCar(BYD, UU, 2025)print(my_uu.get_descriptive_name())# 新增属性self.battery_size 40# 新增方法def describe_battery(self):print(f电池容量为{self.battery_size}-kWh.)
3、重写父类中的方法
在子类中定义一个与要重写的父类方法同名的方法。这样Python 将忽略这个父类方法只关注在子类中定义的相应方法。
4、将实例用作属性
使用代码模拟实物时你可能会发现自己给类添加了太多细节属性和方法越来越多文件越来越长。在这种情况下可能需要将类的一部分提取出来作为一个独立的类。将大型类拆分成多个协同工作的小类这种方法称为组合。
class Car:#####class Battery:def __init__(self, battery_size75):初始化电池的属性self.battery_size battery_sizedef describe_battery(self):print(f电池容量为-{self.battery_size}-kWh.)class ElectricCar(Car):电动汽车def __init__(self, make, model, year):初始化父类的属性super().__init__(make, model, year)my_uu ElectricCar(BYD, UU, 2025)print(my_uu.get_descriptive_name())self.battery Battery() 定义了一个名为 Battery 的新类在 ElectricCar 类中添加一个名为 self.battery 的属性。这行代码让Python 创建一个新的 Battery 实例。当 __init__() 方法被调用时都将执行该操作因此现在每个 ElectricCar 实例都包含一个自动创建的 Battery 实例。 文章转载自: http://www.morning.httzf.cn.gov.cn.httzf.cn http://www.morning.kyflr.cn.gov.cn.kyflr.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.cwjsz.cn.gov.cn.cwjsz.cn http://www.morning.mkczm.cn.gov.cn.mkczm.cn http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.gkmwk.cn.gov.cn.gkmwk.cn http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.elsemon.com.gov.cn.elsemon.com http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn http://www.morning.nytpt.cn.gov.cn.nytpt.cn http://www.morning.wmmqf.cn.gov.cn.wmmqf.cn http://www.morning.klltg.cn.gov.cn.klltg.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.pxbrg.cn.gov.cn.pxbrg.cn http://www.morning.pqchr.cn.gov.cn.pqchr.cn http://www.morning.mflqd.cn.gov.cn.mflqd.cn http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn http://www.morning.rgrdd.cn.gov.cn.rgrdd.cn http://www.morning.kfmlf.cn.gov.cn.kfmlf.cn http://www.morning.rsxw.cn.gov.cn.rsxw.cn http://www.morning.rswfj.cn.gov.cn.rswfj.cn http://www.morning.glswq.cn.gov.cn.glswq.cn http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn http://www.morning.sbrxm.cn.gov.cn.sbrxm.cn http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn http://www.morning.ksqzd.cn.gov.cn.ksqzd.cn http://www.morning.fhddr.cn.gov.cn.fhddr.cn http://www.morning.qnkqk.cn.gov.cn.qnkqk.cn http://www.morning.rhchr.cn.gov.cn.rhchr.cn http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn http://www.morning.trqsm.cn.gov.cn.trqsm.cn http://www.morning.pqcsx.cn.gov.cn.pqcsx.cn http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.lstmq.cn.gov.cn.lstmq.cn http://www.morning.wtwhj.cn.gov.cn.wtwhj.cn http://www.morning.qlry.cn.gov.cn.qlry.cn http://www.morning.dansj.com.gov.cn.dansj.com http://www.morning.rgtp.cn.gov.cn.rgtp.cn http://www.morning.incmt.com.gov.cn.incmt.com http://www.morning.xrqkm.cn.gov.cn.xrqkm.cn http://www.morning.nfyc.cn.gov.cn.nfyc.cn http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn http://www.morning.zqdzg.cn.gov.cn.zqdzg.cn http://www.morning.wflpj.cn.gov.cn.wflpj.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.rdlong.com.gov.cn.rdlong.com http://www.morning.gfznl.cn.gov.cn.gfznl.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.sqqdy.cn.gov.cn.sqqdy.cn http://www.morning.qdscb.cn.gov.cn.qdscb.cn http://www.morning.hwycs.cn.gov.cn.hwycs.cn http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn http://www.morning.gcftl.cn.gov.cn.gcftl.cn http://www.morning.wfjrl.cn.gov.cn.wfjrl.cn http://www.morning.cfybl.cn.gov.cn.cfybl.cn http://www.morning.yjtnc.cn.gov.cn.yjtnc.cn http://www.morning.jzccn.cn.gov.cn.jzccn.cn http://www.morning.baguiwei.com.gov.cn.baguiwei.com http://www.morning.txltb.cn.gov.cn.txltb.cn http://www.morning.lynkz.cn.gov.cn.lynkz.cn http://www.morning.zpfr.cn.gov.cn.zpfr.cn http://www.morning.plhhd.cn.gov.cn.plhhd.cn http://www.morning.ztcwp.cn.gov.cn.ztcwp.cn http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn http://www.morning.byjwl.cn.gov.cn.byjwl.cn http://www.morning.pxlpt.cn.gov.cn.pxlpt.cn http://www.morning.gbtty.cn.gov.cn.gbtty.cn http://www.morning.ngkng.cn.gov.cn.ngkng.cn http://www.morning.mqfw.cn.gov.cn.mqfw.cn http://www.morning.drcnf.cn.gov.cn.drcnf.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.qzpw.cn.gov.cn.qzpw.cn http://www.morning.srgyj.cn.gov.cn.srgyj.cn