【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 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请 ...
随机推荐
- 【bzoj2280】[Poi2011]Plot 二分+倍增+二分+最小圆覆盖
题目描述 给出一系列点p_1, p_2, ... , p_n,将其分成不多余m个连续的段,第i段内求一个点q_i,使得q_i到这段内点的距离的最大值的最大值最小 输入 第一行,n m下面n行,每行两个 ...
- [CQOI2016][bzoj4519] 不同的最小割 [最小割树]
题面 传送门 思路 首先我们明确一点:这道题不是让你把$n^2$个最小割跑一遍[废话] 但是最小割过程是必要的,因为最小割并没有别的效率更高的算法(Stoer-Wagner之类的?) 那我们就要尽量找 ...
- BZOJ 4590 [Shoi2015]自动刷题机 ——二分答案
二分答案水题. #include <cstdio> #include <cstring> #include <iostream> #include <algo ...
- 使用 Nginx 过滤网络爬虫
现在有许多初学者学习网络爬虫,但他们不懂得控制速度,导致服务器资源浪费.通过 Nginx 的简单配置,能过滤一小部分这类爬虫. 方法一:通过 User-Agent 过滤 Nginx 参考配置如下: l ...
- linux文件属性详解及文件类型
一 drwxr-xr-x的意思解释: ls -al 得到如下列表: drwxr-xr-x oracle dba May : oralog1 drwxr-x--- root root May : ro ...
- JavaScript 笔记(2) -- 类型转换 & 正则表达 & 变量提升 & 表单验证
目录: typeof, null, undefined, valueOf() 类型转换 正则表达式 错误: try, catch, throw 调试工具 变量提升 strict 严格模式 使用误区 ...
- Bzoj1879 [Sdoi2009]Bill的挑战
Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 724 Solved: 363 Description Input 本题包含多组数据. 第一行:一个整数T ...
- 洛谷 P1270 “访问”美术馆
P1270 “访问”美术馆 题目描述 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个行动.艺术馆的结构,每条走廊要么分叉为两条走廊,要么通向一个展览室.Peer ...
- error LNK2001: unresolved external symbol __imp__WSAStartup@8 SOCKET(转)
VC6.0下的错误信息: error LNK2001: unresolved external symbol __imp__socket@12 error LNK2001: unresolved ex ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---22
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: