面向对象编程是最有效的软件编写方法之一

创建Dog类

class Dog():
'''一次模拟小狗的简单测试''' def __init__(self,name,age):
self.name = name
self.age = age def sit(self):
'''模拟小狗被命令下蹲'''
print(self.name.title() + "is now sitting.") def roll_over(self):
'''模拟小狗被命令打滚'''
print(self.name.title() + "rolled over!")

1.在这里我们定义了一个Dog类,在Python中,首字母大写的名称指的是类

2.方法__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python会自动运行它,在这个方法中,开头和结尾有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生冲突,在此方法中又是那个形参,参数self必不可少,还必须位于其他形参的前面,Python调用这个方法来创建Dog实例时,将自动传入实参self,每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。self会自动传递,只需要传入后面两个形参(name和age)

3.self.name,以self为前缀的变量都可提供类中的所有方法使用,我们可以通过类的任何实例来访问这些变量,self.name = name 获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到当前创建的实例。像这种可以通过实例访问的变量称为属性。

根据类创建实例

my_dog = Dog('Lucy',3)

print("My dog's name is " + my_dog.name +".")
print("My dog is " + str(my_dog.age) +" years old.")

我们通常可以认为手写字母大写的指的是类,小写的名称指的是类创建的实例

1.调用方法

my_dog = Dog('Lucy',3)
my_dog.sit()
my_dog.roll_over() print("My dog's name is " + my_dog.name +".")
print("My dog is " + str(my_dog.age) +" years old.")

2.创建多个实例

my_dog = Dog('Lucy',3)
your_dog =Dog('Michile',4) print("My dog's name is " + my_dog.name +".")
print("My dog is " + str(my_dog.age) +" years old.")
my_dog.sit() print("your dog's name is " + your_dog.name +".")
print("your dog is " + str(your_dog.age) +" years old.")
your_dog.sit()

在这个实例中,我们创建了2条小狗,他们分别名为Lucy跟Michile.每条小狗都是一个独立的实例,拥有自己的属性。

【Python】创建和使用类的更多相关文章

  1. Python 创建和使用类

    python创建和使用类的方法如下 # class Dog(): # def __init__(self,name,age): # self.name=name # self.age=age # # ...

  2. Python——一个简单的类的创建和应用

    1.创建类,设置属性和给属性设定默认值,设置方法并访问类的属性: 2.利用类创建多个实例,以及调用类的方法的两种办法: 3.设置更新属性的函数,并更新实例的属性. class dog(object): ...

  3. 1.面向过程编程 2.面向对象编程 3.类和对象 4.python 创建类和对象 如何使用对象 5.属性的查找顺序 6.初始化函数 7.绑定方法 与非绑定方法

    1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照 ...

  4. Python不使用元类创建缓存实例

    问题 当创建类实例时我们想返回一个缓存引用,让其指向上一个用同样参数(如果有的话)创建出来的类实例. 这个问题常常出现在当我们想确保针对一组输入参数只会有一个类实例存在时. 解决方法: 使用一个与类本 ...

  5. python基础——使用元类

    python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...

  6. python学习笔记1-元类__metaclass__

    type 其实就是元类,type 是python 背后创建所有对象的元类   python 中的类的创建规则: 假设创建Foo 这个类 class Foo(Bar): def __init__(): ...

  7. Python基础:新式类的属性访问

    一.概述 二.准备工作 1.讨论对象 2.名词解释 三.实例绑定的属性访问 1.获取属性 一般规则 参考源码 示例验证 2.设置属性 一般规则 参考源码 示例验证 3.删除属性 一般规则 参考源码 示 ...

  8. Python基础:元类

    一.概述 二.经典阐述 三.核心总结 1.类的创建过程 2.元类的使用惯例 四.简单案例 1.默认行为 2.使用元类 五.实践为王 一.概述 Python虽然是多范式的编程语言,但它的数据模型却是 纯 ...

  9. Python创建list和按照索引访问list

    Python创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一个list表示:>> ...

  10. Python中的元类和__metaclass__

    1.什么是元类 元类让你来定义某些类是如何被创建的,从根本上说,赋予你如何创建类的控制权.可以把元类想成是一个类中类,或是一个类,它的实例是其它的类.当某个类调用type()函数时,你就会看到它到底是 ...

随机推荐

  1. Mysql实战之索引

    author:JevonWei 版权声明:原创作品 索引基础: 索引:提取索引的创建在的表上字段中的数据,构建出一个独特的数据结构: 索引的作用:加速查询操作:副作用:降低写操作性能: 表中数据子集: ...

  2. redis在linux上的安装和配置

    https://blog.csdn.net/lzding/article/details/52040501(直接可以用的安装phpredis) http://www.runoob.com/redis/ ...

  3. 【CF1068C】Colored Rooks(构造)

    题意: 思路: #include<cstdio> #include<cstring> #include<string> #include<cmath> ...

  4. bzoj 2844 albus就是要第一个出场 异或和出现次数 线性基

    题目链接 题意 给定\(n\)个数,将其所有的子集(\(2^n\)个)的异或和按升序排列.给出一个询问\(q\),问\(q\)在该序列中第一次出现位置的下标(下标从\(1\)开始). 题解 结论 记其 ...

  5. hdu 5952 Counting Cliques 求图中指定大小的团的个数 暴搜

    题目链接 题意 给定一个\(n个点,m条边\)的无向图,找出其中大小为\(s\)的完全图个数\((n\leq 100,m\leq 1000,s\leq 10)\). 思路 暴搜. 搜索的时候判断要加进 ...

  6. bzoj 1228 [SDOI2009]E&D SG函数打表 找规律

    题目链接 Description 桌子上有2n 堆石子,编号为1..2n.将第2k-1 堆与第2k 堆(1 ≤ k ≤ n)为同一组.第i堆的石子个数用一个正整数Si表示.一次分割操作指的是,从桌子上 ...

  7. 一个Android Socket的例子(转)

    1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符 ...

  8. 《手把手教你学C语言》学习笔记(7)---程序的输入与输出

    程序设计中,为了观察程序的运行状态和结构,需要输出指定的内容:为了让程序能够更加灵活,可以根据需求输入内容,让计算机处理和运行:所以程序的输入输出就显的尤为重要.主要包括printf和scanf函数. ...

  9. Codeforces Gym100814 B.Unlucky Teacher (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)

    今日份的训练题解,今天写出来的题没有昨天多,可能是因为有些事吧... 这个题就是老师改卷子,忘带标准答案了,但是他改了一部分卷子,并且确定自己改的卷子没出错,他想从改过的卷子里把标准答案推出来. 因为 ...

  10. Codeforces 371D Vessels (模拟)

    题目链接 Vessels 这道题我做得有点稀里糊涂啊==TLE了几发之后改了一行就A了. 具体思路就是记fi为若第i个容器已经盛不下水了,那么接下来盛水的那个容器. hi为若现在要给i号容器加水,当前 ...