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. Log4j官方文档翻译(七、日志格式化)

    apache log4j提供各种layout对象,然后根据自己指定的layouts对象转化日志信息.通常来说都是应用量身定制layout对象转换信息格式. 所有的layout对象从Appender对象 ...

  2. httpClient 保持session

    import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import ...

  3. ES6箭头函数及模版字符串

    var f = v => v; 等同于: var f = function(v) { return v; }; 箭头函数可以与变量解构结合使用: const full = ({ first, l ...

  4. BZOJ 3538 == 洛谷 P3106 [USACO14OPEN]GPS的决斗Dueling GPS's

    P3106 [USACO14OPEN]GPS的决斗Dueling GPS's 题目描述 Farmer John has recently purchased a new car online, but ...

  5. UIImage与Base64相互转换

    UIImage与Base64相互转换 采用第三方类 Address:https://github.com/l4u/NSData-Base64/ 经测试好用. 2013-07-17

  6. input file 修改按钮名称

    解决方法: 1)页面上放个隐藏的<input type=“file” /> 2)然后加上一个文本input(type="text")和一个按钮input(type=&q ...

  7. DB迁移:从SQL Server 2005到MySQL

    一.工具选择 依工作需要进行老产品升级,其中一项重要工作就是将SQL Server数据库改为MySQL数据库,故而在对<各种主流 SQLServer 迁移到 MySQL 工具对比>文章学习 ...

  8. EOJ Monthly 2017.12 A B C D

    // 因为是中文题面就偷一次懒不写题意啦QAQ // 各种大作业然后又要期末还不知道什么时候能补题QAQ A. 唐纳德先生和假骰子 直接模拟 #include <bits/stdc++.h> ...

  9. GPIO和门电路

    1. GPIO 1.1 简介 GPIO, General Purpose I/O, 通用输入输出接口, 是最简单的数字输入输出引脚 - 作为输出可以有两种状态: 0和1 - 作为输入,它接收外面输入的 ...

  10. check source code after macro expand

    Some time I'd like check source code after macro expand. We can use -E option to stop after the prep ...