博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础-----类和实例
阅读量:5160 次
发布时间:2019-06-13

本文共 4580 字,大约阅读时间需要 15 分钟。

创建简单的类和实例

在python中,首字母大写的名称指的是类,这个类定义中括号的内容是空的。

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

class Dog():  #首字母大写的名称代表的是类,类定义中的括号是空的    """一次模拟小狗的简单尝试"""    def __init__(self, name, age): #_init_()是一个特殊的方法,每次创建新实例python都会运行它        """初始化属性name和age"""        self.name = name        self.age = age    def sit(self):        """模拟小狗被命令时蹲下"""        print(self.name.title() + " is now sitting.")    def roll_over(self):        '''模拟小狗被命令时打滚'''        print(self.name.title() + " rolled over!")my_dog = Dog("zs", 4)  #定义两只小狗your_dog = Dog("ls", 5)print("my dog's name " + my_dog.name.title() + "!")print("your dog's name " + your_dog.name.title() + "!")my_dog.sit()your_dog.roll_over()

运行结果为:

my dog's name Zs!your dog's name Ls!Zs is now sitting.Ls rolled over!

使用类和实例

class Car():    """一次模拟汽车的简单常识"""    def __init__(self, make, model, year):        """初始化描述汽车的属性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_name(self):        """返回整洁的描述信息"""        long_name = str(self.year) + ' ' + self.model + ' ' + self.make        return long_name.title() #此处必须有返回值    def read_odometer(self):        """打印一条汽车里程的消息"""        print("this car has " + str(self.odometer_reading) + " miles on it.")new_car = Car('audi', 'a4', 3)print(new_car.get_descriptive_name())new_car.read_odometer()

运行结果为:

3 A4 Audithis car has 0 miles on it.

修改属性的值

可以用三种方法修改属性的值;

(1)直接通过实例进行修改;

(2)通过方法进行设置;

(3)通过方法进行递增;

 

class Car():    """一次模拟汽车的简单常识"""    def __init__(self, make, model, year):        """初始化描述汽车的属性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_name(self):        """返回整洁的描述信息"""        long_name = str(self.year) + ' ' + self.model + ' ' + self.make        return long_name.title() #此处必须有返回值    def read_odometer(self):        """打印一条汽车里程的消息"""        print("this car has " + str(self.odometer_reading) + " miles on it.")new_car = Car('audi', 'a4', 3)new_car.read_odometer()new_car.odometer_reading = 3 #直接修改属性的值new_car.read_odometer()
class Car():    """一次模拟汽车的简单常识"""    def __init__(self, make, model, year):        """初始化描述汽车的属性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_name(self):        """返回整洁的描述信息"""        long_name = str(self.year) + ' ' + self.model + ' ' + self.make        return long_name.title() #此处必须有返回值    def update_odometer_reading(self, meter):   #此处添加一个方法,这个方法可以接受里程值,并进行存储。        self.odometer_reading = meter    def read_odometer(self):        """打印一条汽车里程的消息"""        print("this car has " + str(self.odometer_reading) + " miles on it.")new_car = Car('audi', 'a4', 3)new_car.update_odometer_reading(5) #调用方法,并传递实参5new_car.read_odometer()

有时候需要将属性值递增特定的量,而不是将其设置为一个全新的值。

class Car():    """一次模拟汽车的简单常识"""    def __init__(self, make, model, year):        """初始化描述汽车的属性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_name(self):        """返回整洁的描述信息"""        long_name = str(self.year) + ' ' + self.model + ' ' + self.make        return long_name.title() #此处必须有返回值    def incream_odometer_reading(self, meter):   #此处添加一个方法,这个方法可以接受里程值,并将其加入到原有值。        self.odometer_reading += meter    def read_odometer(self):        """打印一条汽车里程的消息"""        print("this car has " + str(self.odometer_reading) + " miles on it.")new_car = Car('audi', 'a4', 3)new_car.incream_odometer_reading(5) #调用方法,并传递实参5new_car.read_odometer()new_car.incream_odometer_reading(5) #调用方法,再次传递实参5new_car.read_odometer()

继承

 一个类继承另一个类时,他将自动获得另一个类的所有属性和方法;原有的类称为父类,新的类称为子类;

class Car():    """一次模拟汽车的简单常识"""    def __init__(self, make, model, year):        """初始化描述汽车的属性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_name(self):        """返回整洁的描述信息"""        long_name = str(self.year) + ' ' + self.model + ' ' + self.make        return long_name.title() #此处必须有返回值    def read_odometer(self):        """打印一条汽车里程的消息"""        print("this car has " + str(self.odometer_reading) + " miles on it.")class ELE(Car):   #定义子类时必须在括号内指定父类的名称    """d电动车的独特之处"""    def __init__(self, make, model,year):        """初始化父类的属性"""        super().__init__(make, model, year) #super()是一个特殊函数,将父类和子类关联起来my_ele = ELE('aa', 'ss',4)my_ele.read_odometer()print(my_ele.get_descriptive_name())

 

转载于:https://www.cnblogs.com/jinyuanliu/p/10362583.html

你可能感兴趣的文章
软件业人才结构
查看>>
log4j.properties配置模板
查看>>
C# 拼接字符串的几种方式和性能
查看>>
Linux文件系统挂载管理
查看>>
Java路径
查看>>
Android Webview中解决H5的音视频不能自动播放的问题
查看>>
Android微信SDK API 调用教程【转】
查看>>
Android开发优化之——对Bitmap的内存优化
查看>>
最近的工作感悟
查看>>
JAVA数据类型
查看>>
C# 防火墙操作之启用与关闭
查看>>
在ASP.NET MVC中如何预防Cookie的窃取攻击(转载)
查看>>
EL表达式
查看>>
jaeger 使用初探
查看>>
IOS成长之路-Nsstring搜索方法rangeOfString
查看>>
重温ASP.NET WebAPI(二)进阶
查看>>
为什么macos开机黑屏但是有声音?
查看>>
002—对数组的几种基本操作
查看>>
解构在架构设计中的运用
查看>>
1025 反转链表(链表,reverse)
查看>>