Python 学习笔记13 类 - 创建和简单使用
介绍:
面向对象编程是一种非常有效的软件编写方法之一,在面向对象编程中,我们会编写表示现实世界中的事物或者情景的类,并基于类来创建对象。
在编写类的的时候,这些类对象一般都有通用的行为或者属性。基于类创建对象时,每个对象都自动具备这些属性和行为,然后给予需要给与这些对象一些特殊的属性或者行为。
我们几乎可以使用面向对象的方式来模拟现实生活中的所有情景。
根据类来创建队形被称为实例化,这让你能够使用类的实例。
创建类:
我们使用一个例子来说明怎么创建一个类。
我们假设创建一个名叫dog的类,我们知道狗狗一般会跑,叫,有些还会坐下,这些都是这个类的一些行为,我们也可以定义它的一些属性,比如名字和年龄。我们可以再代码中这样来实现这个类:
class Dog():
def __init__(self, name, age):
self.name = name
self.age = age def sit(self):
print(self.name + " is sitting.") def run(self):
print(self.name + " is running.") def bark(self):
print(self.name + " is barking.")
在上面代码中我们可以看到,我们定义可一个dog类,在python的约定中,我们一般用首字母大写来表示类。
在定义好类的名字后,我们看到Python使用__init__来初始化类对象,就像一个构造函数一样。我们可以在这个函数方法中来初始化和定义我们需要的一些变量(属性),比如表示自身的self,表示名字的name,表示年龄的age。这些属性一旦定义好后,可以在类的方法中使用。当类被实例化成对象后,对象自动拥有这些属性。
这个类还被定义了一些方法,比如run,sit和bark,在这些方法中我们也可以看到,他可以自动的调用name,age等参数,因为他们已经是类的属性。
使用类:
根据类,我们可以创建和实例化一个对象。我们可以把dog类看做是一个对象的说明,而实例化的过程,实际就是根据说明创建一个对象的过程。
class Dog():
def __init__(self, name, age):
self.name = name
self.age = age def sit(self):
print(self.name + " is sitting.") def run(self):
print(self.name + " is running.") def bark(self):
print(self.name + " is barking.") my_dog = Dog('WanCai', 5 )
我们可以看到,我们使用code:my_dog = Dog('WanCai', 5 ) 来实例化了一个叫wancai, 6岁的名叫my-dog的对象。
一旦实例化了一个对象,我们就可以调用这个对象的属性和方法:
my_dog = Dog('WanCai', 5 )
print(type(my_dog))
print("name is : " + my_dog.name)
print("age is : " + str(my_dog.age))
my_dog.sit()
my_dog.run()
my_dog.bark()
'''
输出:
<class '__main__.Dog'>
name is : WanCai
age is : 5
WanCai is sitting.
WanCai is running.
WanCai is barking.
'''
一旦我们定义好了类,我们可以根据实际的需要来创建多个实例:
my_dog = Dog('WangCai', 5 )
print(type(my_dog))
print("name is : " + my_dog.name)
print("age is : " + str(my_dog.age))
my_dog.sit()
my_dog.run()
my_dog.bark()
rachel_dog = Dog('LaiFu', 5 )
print(type(rachel_dog))
print("name is : " + rachel_dog.name)
print("age is : " + str(rachel_dog.age))
rachel_dog.sit()
rachel_dog.run()
rachel_dog.bark()
'''
输出:
<class '__main__.Dog'>
name is : WangCai
age is : 5
WangCai is sitting.
WangCai is running.
WangCai is barking.
<class '__main__.Dog'>
name is : LaiFu
age is : 5
LaiFu is sitting.
LaiFu is running.
LaiFu is barking.
'''
Python 学习笔记13 类 - 创建和简单使用的更多相关文章
- python学习笔记4_类和更抽象
python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...
- python 学习笔记 13 -- 经常使用的时间模块之time
Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: * time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...
- Python学习笔记12—类
典型的类和调用方法: #!/usr/bin/env Python # coding=utf-8 __metaclass__ = type #新式类 class Person: #创建类 def __i ...
- python学习笔记13(模块、包)
在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...
- Python学习笔记 - day7 - 类
类 面向对象最重要的概念就是类(Class)和实例(Instance),比如球类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同.在Python中,定义类 ...
- Python 学习笔记13:Python + wsgi + django 配置。坑爹的python3和wsgi不兼容的解决
今人不见古时月,今月曾经照古人.生命是如此的美丽与短暂! 学习Python已经两个月了,Python的语法通过做简单的语法题和看Python语法介绍,有了初步的了解.但上班还是要做别的事情,所以感觉学 ...
- python学习笔记1-元类__metaclass__
type 其实就是元类,type 是python 背后创建所有对象的元类 python 中的类的创建规则: 假设创建Foo 这个类 class Foo(Bar): def __init__(): ...
- Python 学习笔记 - 10.类(Class) 1
定义 Python 的 Class 比较特别,和我们习惯的静态语言类型定义有很大区别. 1. 使用一个名为 __init__ 的方法来完成初始化.2. 使用一个名为 __del__ 的方法来完成类似析 ...
- Python学习笔记008_类_对象_继承_组合_类相关的BIF
# 对象 = 属性 + 方法>>> # Python中的类名约定以大写字母开始>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它 ...
随机推荐
- bzoj1897. tank 坦克游戏(决策单调性分治)
题目描述 有这样一款新的坦克游戏.在游戏中,你将操纵一辆坦克,在一个N×M的区域中完成一项任务.在此的区域中,将会有许多可攻击的目标,而你每摧毁这样的一个目标,就将获得与目标价值相等的分数.只有获得了 ...
- 让 Git Bisect 帮助你
让 Git Bisect 帮助你 英文原文:Letting Git Bisect Help You Git 提供来很多的工具来帮助我们改进工作流程. bisect 命令就是其中之一, 虽然由于使用 ...
- 微信小程序(5)--阅读器
最近用微信小程序写了一个图书阅读器,可以实现左右滑动翻页,按钮翻页,上下滚动,切换背景,控制字体大小.以及记住设置好的状态,如页面再次进来保留上次的背景色和字体大小. 由于暂时没有真实的数据接口,所以 ...
- Dev控件
在DevExpress程序中使用PopupContainerEdit和PopupContainer实现数据展示 使用PopupContainerEdit和PopupContainerControl制作 ...
- python常用函数 H
heapify(iterable) 堆排序. 例子: heappop(iterable) 弹出堆排序的第一个元素,即最小值. 例子: hasattr(object,attr) 用于确定对象是否有某个属 ...
- python 模仿 C/C++ 结构体
import struct from ctypes import * class MyStruct(Structure): _fields_ = [ ("v1", c_char), ...
- python模块之jinja2 ,shutil
一 jinja2 用来给python提供html语法的模块 安装 pip install jinja2 使用 from jinja2 import Template def html_output(p ...
- pylab和pyplot的区别
Pylab combines the functionality of pyplot with the capabilities of NumPy in a single namespace, and ...
- paper 153:Delaunay三角剖分算法--get 这个小技术吧!
直接摘自百度百科,希望大家能根据下面的介绍稍微理顺思路,按需使用,加油! 解释一下:点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技 ...
- 远程桌面按键失效变成快捷键(远程桌面连接时会自动按下win键)
三个电脑快捷键 (无意中学会三个快捷键了.....)win + L 锁屏win + D 切换到桌面win + F 搜索 在使用远程桌面连接Windows 2008操作系统,发现一个很烦的问题,经常发现 ...