Car类

class Car():
'''模拟汽车'''
def __init__(self,name,model,year):
'''初始化汽车的属性'''
self.name = name
self.model = model
self.year = year
def get_describe_car(self):
'''返回描述性信息'''
long_name = str(self.year)+' '+self.name + ' '+self.model
return(long_name) #创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())

上图是新建的一个Car类,并且我们创建了实例,并将其存储到My_new_car中

给属性指定默认值

如果在方法__init__()中指定了默认值,那么就无需包含为它提供初始值的形参

class Car():
'''模拟汽车'''
def __init__(self,name,model,year):
'''初始化汽车的属性'''
self.name = name
self.model = model
self.year = year
self.miters = 0
def get_describe_car(self):
'''返回描述性信息'''
long_name = str(self.year)+' '+self.name + ' '+self.model
return(long_name) def print_miters(self):
print("This car has " + str(self.miters) +" miles on it")
#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())
My_new_car.print_miters()

上述代码中定义了一个初始值,在形参中我们就没有为其传入值,但是在方法print_miters中我们又使用了该属性

修改属性的值

三种方法修改属性的值:

①直接通过实例进行修改

②通过方法进行设定

③通过方法进行递增(增加特定的值)

1.通过实例进行修改

class Car():
'''模拟汽车'''
def __init__(self,name,model,year):
'''初始化汽车的属性'''
self.name = name
self.model = model
self.year = year
self.miters = 0
def get_describe_car(self):
'''返回描述性信息'''
long_name = str(self.year)+' '+self.name + ' '+self.model
return(long_name) def print_miters(self):
print("This car has " + str(self.miters) +" miles on it")
#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())
My_new_car.miters = 100
My_new_car.print_miters()

2.通过方法进行设定

无需直接访问属性,可将值传递给一个方法,由他在内部进行更新

class Car():
'''模拟汽车'''
def __init__(self,name,model,year):
'''初始化汽车的属性'''
self.name = name
self.model = model
self.year = year
self.miters = 0
def get_describe_car(self):
'''返回描述性信息'''
long_name = str(self.year)+' '+self.name + ' '+self.model
return(long_name)
def update_miters(self,miters):
self.miters = miters def print_miters(self):
print("This car has " + str(self.miters) +" miles on it")
#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())
My_new_car.update_miters(200)
My_new_car.print_miters()

3.通过方法对属性值进行递增特定的量,而不是将其设置为全新的值

class Car():
'''模拟汽车''' def __init__(self, name, model, year):
'''初始化汽车的属性'''
self.name = name
self.model = model
self.year = year
self.miters = 0 def get_describe_car(self):
'''返回描述性信息'''
long_name = str(self.year) + ' ' + self.name + ' ' + self.model
return (long_name) def update_miters(self,miters):
self.miters = miters def increment_miters(self,add_miters):
'''将里程设置为指定的数'''
self.miters += add_miters def print_miters(self):
print("This car has " + str(self.miters) + " miles on it") # 创建实例
My_user_car = Car('Audi', 'A4', '2016')
print(My_user_car.get_describe_car()) My_user_car.update_miters(200)
My_user_car.print_miters() My_user_car.increment_miters(100)
My_user_car.print_miters()

新增的方法increment_miters()接受一个数字后,并将其加入到update_miters()已经修改过的里程数,我们调用方法update_miters()传入200,然后调用increment_miters()又在200基础上新增100,接着打出来。

【Python】使用类和实例的更多相关文章

  1. python基础——类和实例

    python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...

  2. Python - 001 - 类与实例间属性的理解

    Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问class属性时,先检索自己的names, 如果有 ...

  3. python之---类和实例

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

  4. python基础-----类和实例

    在python中,首字母大写的名称指的是类,这个类定义中括号的内容是空的. 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板而实例是根据类创建出来的一个个具体 ...

  5. Python面向对象-类、实例的绑定属性、绑定方法和__slots__

    绑定属性 从之前的文章中,我们知道python是动态语言——实例可以绑定任意属性. 那如果实例绑定的属性和类的属性名一样的话,会是什么情况呢? >>> class Student(o ...

  6. python学习|类和实例

    什么叫实例对象呢?大家可以想象一下,[类]就像工厂的模具,以它为模板,造出来的成千上万的产品,才是被我们消费.购买.使用,真正融入我们生活的东西.这些产品,在Python中就叫[实例对象]. 往深了说 ...

  7. python tips:类与实例的属性问题

    实例是具象化的类,它可以作为类访问所有静态绑定到类上的属性,包括类变量与方法,也可以作为实例访问动态绑定到实例上的属性. 实例1: class A: work = list("hello&q ...

  8. python面向对象--类和实例的认识

    '''1.数据属性 2.函数属性''' #创建一个类class Chinese: "这是一个中国人的类" #类属性 money=4000 #注意类和对象均用点来访问自己的属性 de ...

  9. python 创建类的实例对象

    # -*- coding: UTF-8 -*- class Employee: def __init__(self, name, salary): self.name = name self.sala ...

  10. Python学习(七)面向对象 ——类和实例

    Python 面向对象 —— 类和实例 类 虽然 Python 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请 ...

随机推荐

  1. BZOJ 4175 小G的电话本 ——NTT

    后缀自动机统计出现了各种次数的串的和. 就是所谓的生成函数 然后FFT卷积即可. 卷积快速幂$n\log n \log n$ 注意一下实现,可以少两次NTT #include <map> ...

  2. windows系统部署springboot项目及绑定域名

    http://note.youdao.com/noteshare?id=c3ccea255affd2c5d79231d67fa29103&sub=187AEEEA5CF34531A2C2315 ...

  3. mysql启动错误1067的解决

    安装后MYSQL5后,发现启动出错,有时启动正常,但加接时马上出错. 出错代码:1067 解决办法如下: 删除%windows%/my.ini    删除其它地方的my.ini    在mysql安装 ...

  4. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---34

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  5. Python学习杂记_9_集合操作

    集合集合是由花括号括起来的一组数据,特点是“数据不重复”,“无序”,“类型不统一”.其中数据不重复是它最重要的特点,常常用于“去重”操作,Set(list)方法可以把列表强制转换成集合. 集合的一些操 ...

  6. ASP.NET MVC 利用Razor引擎生成静态页

    实现原理及步骤: 1.通过ViewEngines.Engines.FindView查找到对应的视图,如果是部分视图,则用:ViewEngines.Engines.FindPartialView: 2. ...

  7. 服务器出现大量close_wait,我们来说说到底是怎么回事?(以tomcat为例)

    一.问题描述 最近一直忙得很,好久没写博客.前两天,微信收到个好友申请,说是想问问close_wait的事情. 找他问了些详细信息,大概了解到,他们后端服务是tomcat 7, jdk 7,cento ...

  8. 树的直径新求法、codeforces 690C3 Brain Network (hard)

    树的直径新求法 讲解题目 今天考了一道题目,下面的思路二是我在考场上原创,好像没人想到这种做法,最原始的题目,考场上的题目是这样的: 你现在有1 个节点,他的标号为1,每次加入一个节点,第i 次加入的 ...

  9. ACM的奇计淫巧_输入挂

    什么是输入挂? 众所周知scanf比cin快的多,那么有没有比scanf更快的东西呢?答案就是输入挂,输入挂利用了告诉读取的函数getchar(),然后再人工处理成整数或浮点,比使用scanf快太多. ...

  10. Loj #6287 诗歌

    link: https://loj.ac/problem/6287 一开始差点写FFT了23333,并且FFT还能算这样的三元组的数量而且还不用要求这是一个排列.... 但这太大材小用了(而且很可能被 ...