python-类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5065字,纯文字阅读大概需要8分钟。
内容图文
![python-类](/upload/InfoBanner/zyjiaocheng/1333/ced985eabcbd498b90894b8f7b481da4.jpg)
1 # #------------------------类-------------------- 2 ‘‘‘ 3 在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。 4 编写类时,你定义一大类对象都有的通用行为。基于类创建 对象时,每个对象都自动具备 5 这种通用行为,然后可根据需要赋予每个对象独特的个性。 6 7 根据类来创建对象被称为 实例化,这让你能够使用类的实例。你将指定可在实例中存储什 8 么信息,定义可对这些实例执行哪些操作。你还将编写一些类来扩展既有类的功能,让相似 9 的类能够高效地共享代码。你将把自己编写的类存储在模块中,并在自己的程序文件中导入 10 其他程序员编写的类。 11 ‘‘‘ 12 # #总而言之,类像是一个模板,实例化就是根据模板做好的成品 13 # #创建和使用类 14 15 class Dog(): 16 def __init__ (self,name,age): 17 ‘‘‘ 初始化属性name和age ‘‘‘ 18 self.name=name 19 self.age=age 20 21def sit(self): 22‘‘‘模拟小狗被命令时蹲下‘‘‘ 23print(str(self.name.title())+‘蹲下!‘) 24 25def roll_over(self): 26‘‘‘模拟小狗被命令时打滚‘‘‘ 27print(str(self.name.title())+‘打滚!‘) 28 29##实例化一个对象my_dog 30 my_dog=Dog(‘阿尔法‘,5) 31##访问属性 32print(‘我的小狗的名字叫做:‘+my_dog.name.title()) 33print(my_dog.name.title()+‘今年已经有‘+str(my_dog.age)+‘岁了!‘) 34##调用类中的方法(函数) 35my_dog.sit() 36my_dog.roll_over() 37##创建多个实例: 38#可按需求根据类创建任意数量的实例。 39 your_dog=Dog(‘贝塔‘,3) 40your_dog.roll_over() 41 42 43 44 -------------------------------------------------------------------- 45 46class Car(): 47‘‘‘一次模拟汽车的简单尝试‘‘‘ 48def__init__(self,make,model,year,color): 49‘‘‘初始化汽车的属性‘‘‘ 50 self.make=make 51 self.model=model 52 self.year=year 53 self.color=color 54 self.odometer_reading=10##给定的默认值 55def get_descriptive_name(self): 56‘‘‘返回整洁的描述信息‘‘‘ 57 long_name=str(self.year)+‘,由‘+self.make+‘公司‘+‘生产的‘+self.model+self.color+‘型号车的性能相当出色!‘ 58return long_name.title() 59def read_odometer(self): 60‘‘‘打印汽车的里程数‘‘‘ 61print(‘这辆‘+str(self.model)+‘车已经行驶了‘+str(self.odometer_reading)+‘公里!‘) 62 63#属性值的更新方法2: 64def update_odomenter(self,mileage): 65#扩展:禁止里程数回调 66if mileage>=self.odometer_reading: 67 self.odometer_reading=mileage 68else: 69print(‘操作非法,拒绝!‘) 70 71def increment_odometer(self,miles): 72‘‘‘将里程表读数增加指定的量‘‘‘ 73 self.odometer_reading+=miles 74 my_new_car=Car(‘GWC‘,‘悍马H2‘,2008,‘银黑色‘) 75print(my_new_car.get_descriptive_name()) 76print(str(my_new_car.read_odometer())) 77##修改属性的值: 78#1.直接修改属性的值 79 my_new_car.odometer_reading=200##通过实例化对象直接访问并修改 80my_new_car.read_odometer() 81 82#2.通过方法修改属性的值 83 my_new_car.update_odomenter(300)##更新属性odometer_reading的值 84my_new_car.read_odometer() 85#3.通过方法对属性的值进行递增 86‘‘‘ 87 有时候需要将属性值递增特定的量,而不是将其设置为全新的值。假设我们购买了一辆二手 88 车,且从购买到登记期间增加了100英里的里程,下面的方法让我们能够传递这个增量,并相 89 应地增加里程表读数: 90‘‘‘ 91 my_new_car=Car(‘上海一汽‘,‘大众‘,2017,‘银色‘) 92print(my_new_car.get_descriptive_name()) 93 my_new_car.update_odomenter(2000) 94my_new_car.read_odometer() 95 96 my_new_car.increment_odometer(100) 97my_new_car.read_odometer() 98 99100##-----------继承---------------101class ElectricCar(Car): 102‘‘‘电动汽车‘‘‘103def__init__(self,make,model,year,color): 104‘‘‘初始化父类的属性‘‘‘105 super().__init__(make,model,year,color) 106107108109 my_tesla=ElectricCar(‘雅迪‘,‘雅迪电动车‘,‘2019‘,‘红色‘) 110print(my_tesla.get_descriptive_name()) 111 my_tesla.read_odometer()##//通过继承来的方法访问父类创建的默认值112‘‘‘113pythin2.7继承方法 114115class Car(object): 116 def __init__(self, make, model, year): 117 -- snip -- 118119class ElectricCar(Car): 120 def __init__(self, make, model, year): 121 super(ElectricCar, self).__init__(make, model, year) 122‘‘‘123##给子类定义属性和方法124class Bus(Car): 125‘‘‘公交汽车‘‘‘126def__init__(self,make,model,year,color): 127‘‘‘初始化父类的属性‘‘‘128 super().__init__(make,model,year,color) 129 self.battery_size=100##电瓶容量130131def display_battery_size(self): 132print(‘这辆‘+str(self.model)+‘的容量是‘+str(self.battery_size)) 133134#重写父类的方法135def read_odometer(self): 136print(‘此公交汽车已经行驶:‘+str(self.odometer_reading)+‘公里!‘) 137 my_bus=Bus(‘天津一汽‘,‘2019-公交车‘,‘2019‘,‘墨绿色‘) 138 bus_massage=my_bus.get_descriptive_name() 139print(bus_massage) 140my_bus.display_battery_size() 141##调用重写父类的方法142 my_bus.odometer_reading+=10 143my_bus.read_odometer() 144145146##将实例化的对象用作属性147‘‘‘148使用代码模拟实物时,你可能会发现自己给类添加的细节越来越多:属性和方法清单以及文 149件都越来越长。在这种情况下,可能需要将类的一部分作为一个独立的类提取出来。你可以将大 150型类拆分成多个协同工作的小类。 151‘‘‘152class bearing(): 153def__init__(self,name=‘30mm轴承‘,materials=‘碳性钢‘): 154‘‘‘初始化轴承的属性‘‘‘155 self.name=name 156 self.materials=materials 157158def read_property(self): 159‘‘‘返回整洁的描述信息‘‘‘160print(str(self.name)+‘的材质是‘+str(self.materials)+‘打造的‘) 161162class private_car(Car): 163‘‘‘私家车的属性‘‘‘164def__init__(self,make,model,year,color): 165 super().__init__(make,model,year,color) 166 self.number_of_passengers=4##可乘坐人数167 self.Bearing=bearing() 168def print_pricate_car_massage(self): 169print(‘属性:‘+‘\n\t厂家:‘+str(self.make)+‘\n\t名称:‘+str(self.model)+‘\n\t生产日期:‘+str(self.year)+‘\n\t颜色:‘+str(self.color)) 170print(‘载客量为:‘+str(self.number_of_passengers)) 171172 my_private_car=private_car(‘上海一汽‘,‘宝马‘,2020,‘蓝色‘) 173my_private_car.print_pricate_car_massage() 174my_private_car.bearing.read_property() 175176##导入单个类(假设统计目录下的hello.py文件中有个hello_friend的类)177from hello import hello_friend 178##在一个模块中存储多个类179‘‘‘虽然同一个模块中的类之间应存在某种相关性,但可根据需要在一个模块中存储任意数量的类。‘‘‘180##从一个模块中导入多个类(类与类之间用逗号隔开) 181from hello import hello_friend,hello_teacher 182183##导入整个模块184‘‘‘还可以导入整个模块,再使用句点表示法访问需要的类。这种导入方法很简单,代码也易 185于阅读。由于创建类实例的代码都包含模块名,因此不会与当前文件使用的任何名称发生冲突。‘‘‘186import hello 187188189##导入模块中的所有类,要导入模块中的每个类,可使用下面的语法:190from module_name import *
原文:https://www.cnblogs.com/best-mingge/p/12878303.html
内容总结
以上是互联网集市为您收集整理的python-类全部内容,希望文章能够帮你解决python-类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】