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. File(IO流)

    import java.io.File; import java.io.IOException; import org.junit.Test; /** *java.io.File类 *1.凡是与输入输 ...

  2. JAVA与VB通过SOCKET通讯

    JAVA与VB通过SOCKET通讯 在做项目的过程中,本来是想使用JAVA的comm.jar工具实现串口通讯,不知道怎么回事,总是取不到电脑的串口.所以,改为现在的这种模式:java通过socket给 ...

  3. Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)

    该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...

  4. 部署私有Docker Registry

    安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制 ...

  5. Mysql 取整的方法

    .CEIL() 向上取整 SELECT CEIL(/); .FLOOR() 向下取整 SELECT FLOOR( .ROUND() 四舍五入 SELECT ROUND(

  6. 《Java性能权威指南》笔记----Java性能调优工具

    OS 1.CPU 用户态时间(us):cpu执行应用代码所占时间的百分比. 内核态时间(sy):cpu执行内核代码所占时间的百分比,系统态时间与应用相关. 空闲时间(id):cpu空闲时间百分比.空闲 ...

  7. 使用T4模板创建一个例子

    1.创建项目,添加新项,名称处填写Messages.tt,如下图: 添加后,Messages.tt文件内容如下: <#@ template debug="false" hos ...

  8. [LeetCode] Rotate List 单项链表旋转

    Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...

  9. 谈谈JS中的原型

    不知道大家对JS中的原型理解的怎么样,我想如果大家对JS中的原型对象以及prototype属性十分熟悉的话对后面原型链以及继承的理解会十分的容易,这里想和大家分享自己对其的理解,请先看下面这段代码O( ...

  10. python3字符串操作总结

    字符串截取  >>>s = 'hello' >>>s[0:3] 'he' >>>s[:] #截取全部字符 'hello' 消除空格及特殊符号 s. ...