【Python】使用类和实例
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】使用类和实例的更多相关文章
- python基础——类和实例
python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...
- Python - 001 - 类与实例间属性的理解
Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问class属性时,先检索自己的names, 如果有 ...
- python之---类和实例
类和实例: 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但 ...
- python基础-----类和实例
在python中,首字母大写的名称指的是类,这个类定义中括号的内容是空的. 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板而实例是根据类创建出来的一个个具体 ...
- Python面向对象-类、实例的绑定属性、绑定方法和__slots__
绑定属性 从之前的文章中,我们知道python是动态语言——实例可以绑定任意属性. 那如果实例绑定的属性和类的属性名一样的话,会是什么情况呢? >>> class Student(o ...
- python学习|类和实例
什么叫实例对象呢?大家可以想象一下,[类]就像工厂的模具,以它为模板,造出来的成千上万的产品,才是被我们消费.购买.使用,真正融入我们生活的东西.这些产品,在Python中就叫[实例对象]. 往深了说 ...
- python tips:类与实例的属性问题
实例是具象化的类,它可以作为类访问所有静态绑定到类上的属性,包括类变量与方法,也可以作为实例访问动态绑定到实例上的属性. 实例1: class A: work = list("hello&q ...
- python面向对象--类和实例的认识
'''1.数据属性 2.函数属性''' #创建一个类class Chinese: "这是一个中国人的类" #类属性 money=4000 #注意类和对象均用点来访问自己的属性 de ...
- python 创建类的实例对象
# -*- coding: UTF-8 -*- class Employee: def __init__(self, name, salary): self.name = name self.sala ...
- Python学习(七)面向对象 ——类和实例
Python 面向对象 —— 类和实例 类 虽然 Python 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请 ...
随机推荐
- Log4j官方文档翻译(六、日志的级别)
org.apache.log4j.Level 类提供了下面几种日志级别,你也可以通过继承这些类,自定义级别 ALL 所有日志级别都包括 DEBUG 指定信息事件的粒度是DEBUG,在调试应用的时候会有 ...
- 删除ARCSDE表空间和用户后,新建时出现error -1:O的解决办法
对于刚开始使用arcsde的用户,可能会出现各种问题,慢慢来就会找到解决办法 当我们删除用户和表空间时,在服务器本地还保留这sde.dbf文件(删除时选择了删除本地文件,不知道为什么), 我们可以换一 ...
- BZOJ 2728: [HNOI2012]与非
2728: [HNOI2012]与非 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 786 Solved: 371[Submit][Status][ ...
- [LeetCode] Longest Common Prefix 字符串公有前序
Write a function to find the longest common prefix string amongst an array of strings. Hide Tags Str ...
- 带接口的webservice 的发布
1.接口:(打上service注解) package ws.qlq.a; import javax.jws.WebService; /** * 面向接口的webservice发布方式 * * */ @ ...
- 01.mp4v2应用—mp4转h264
1.h264文件基本功能 NAL 头 0x00 0x00 0x00 0x01 sps :nal+0x67开头 pps :nal+0x68开头 I帧 0x65 开头 ...... 2.mp4v2提取26 ...
- 浏览器中“JavaScript解析器”工作原理
浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤: 1.“找一些东西”: v ...
- JS和jquery加载的区别
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- java通过读取本地文件获取反射方法参数,执行对象方法
运用到的知识点 IO流, 集合properties 反射 在工程目录下新建file config.properties #one time only can run one method cl ...
- js计算数组中每个元素出现的次数
计算数组中每个元素出现的次数 var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; var countedNames = names.redu ...