一、类和对象

python可以动态的添加删除变量和方法

类中的方法至少要有一个参数,第一个参数会被绑定到类的实例上,通常命名为self

1.构造函数

类中的构造方法名为 __init__(self,...,...),如果类没有定义构造方法,则会自动包含一个只有self的构造方法

class Person:
'这是一个Person类'
def __init__(self,name='tom',age=10):
print('创建一个Person类')
self.name=name
self.age=age
def say(self,content):
print(content)

python一个类只有一个构造函数。不向java  net 可以重载多个构造函数

2.创建对象

调用构造方法创建类的对象,不需要使用new关键字

p=Person()#打印创建一个Person类

调用

p.name
p.say('你好')

赋值

p.name='lilei'

3.动态操作对象

动态添加变量

p.skills=['Singing','Swimming']

动态删除变量

del p.name

动态创建方法

动态创建方法是,不会自动绑定到第一个参数,所以调用方法时,需要手动绑定

def hi(self):
print("say hello") p.hello=hi
p.hello(p)

如果想要动态的方法能自动绑定需要用到types模块下的MetodType

4.self

类中使用一个方法调用另一个方法

class Dog:
def jump(self):
print('jump')
def run(self):
self.jump()
print('run')
p=Dog()
p.run()

二、方法

1.方法调用

def a():
print('全局的a方法')
class Dog():
def a():
print('Dog下的a方法')
def b(self):
print( self ,'Dog下的b方法') a()#使用全局方法
Dog.a()#使用位绑定的类方法
########
dog=Dog()
dog.b()#使用位绑定的类方法
Dog.b(dog)#使用位绑定的类方法
Dog.b('dog')#使用位绑定的类方法,实例名可以不是Dog类,任意字符串即可

打印

2.类方法和静态方法

类方法和静态方法可以直接调用函数,区别是类方法会自动绑定

class Dog():
@classmethod
def a(self):
print('Dog下的a方法')
@staticmethod
def b(self):
print( self ,'Dog下的b方法') Dog.a()
Dog.b('dog')

3.函数修饰器@

三、成员变量

1.类变量和实例变量

在类中没有操作实例变量时,得出的结果都是相同的

class Student:
age=8
name='tom' Student.name#类变量 打印tom
 stu=Student() stu.name#实例变量 打印tom、

如果在构造函数创建实例后,类变量和实例变量会变成两个不一样的变量

class Student:
age=8
name='tom'
def s(self,age,name):
#新创建的两个实例变量
self.age=age
self.name=name
stu=Student()
stu.s(10,'jack') print(Student.name)#打印 tom
print(stu.name)#打印 jack

2.用property函数定义属性

四、封装

双下划线

五、继承

1.继承

定义类时使用(父类1,父类2,...)表示继承,python允许多继承

class Fruit:
def fruit(self):
print('水果类') class Food:
def food(self):
print('食物类') class Apple(Fruit,Food):#继承水果和食物类
def apple(self):
print('苹果类') a=Apple()
a.apple()
a.fruit()
a.food()

2.重写父类方法

class Apple(Fruit,Food):
def fruit(self):
print('苹果类')

3.

六、动态性

python是动态语言,可以动态增加删除

七、多态

由于python是弱语言天生带有多态性

八、枚举

 

(8)python 类和对象的更多相关文章

  1. python类与对象各个算数运算魔法方法总结

    1.python类与对象各个算术运算魔法方法总结: 2.各个魔法方法应用举例: 3.实例训练: (1)我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常 ...

  2. python 类和对象的属性

    python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性 ...

  3. 一文讲全了Python 类和对象内容

    摘要:这是一个关于 Python 类和对象的全部内容. 本文分享自华为云社区<从零开始学python | Python 类和对象-面向对象编程>,原文作者:Yuchuan  . Pytho ...

  4. python类、对象

    python类.对象 学习完本篇,你将会深入掌握 什么是类,对象 了解类和对象之间的关系 能独立创建一个People(人类),属性有姓名.性别.年龄.提供一个有参的构造方法,编写一个show方法,输出 ...

  5. python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

  6. python类、对象、方法、属性之类与对象笔记

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  7. python类与对象基本语法

    面向对象编程的2个非常重要的概念:类和对象. 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念--类. 类就相当于制造飞机时的图纸,用它 ...

  8. python 类和对象

    类和对象 类 1.类的组成    数据和函数,二者是类的属性 2.两个作用: 实例化 属性引用  属性引用:类名.属性(增删改查)   实例化: 类名加括号就是实例化,会自动出发__init__的运行 ...

  9. Python类和对象

    目录 类与对象 其他方法 继承 经典类和新式类 派生 组合 接口.归一化设计与抽象类 继承实现的原理 子类中调用父类的方法 指名道姓 super()方法 多态与多态性 封装 单下划线开头 双下划线开头 ...

  10. python类与对象的组合与继承

    1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于“有一个”的场景中,继承用于“是一个”的场景 ...

随机推荐

  1. [转载] Win7下MATLAB 7.0下载地址和详细安装

    移步http://blog.csdn.net/feecooling/article/details/7525140 MATLAB中文手册命令汇总http://wenku.baidu.com/view/ ...

  2. Hadoop上配置Hbase数据库

    已有环境: 1. Ubuntu:14.04.2 2.jdk: 1.8.0_45 3.hadoop:2.6.0 4.hBase:1.0.0 详细过程: 1.下载最新的Hbase,这里我下载的是hbase ...

  3. 第一个贴上XMT标签的Hadoop程序

    距离老板留给我并行化做属性约简的任务开始到今天,已是一周有余,期间经历过各种呕心沥血,通宵达旦,终于运行出了一个结果.其中在配置过程中,浪费了爷大量的时间,有时回想自己上个周干的事情,会觉得分明的本末 ...

  4. 【BZOJ 2434】 [Noi2011]阿狸的打字机 fail树+树状数组

    就是考了一个fail树的神奇应用我们建出fail树之后,发现我们就是在求y到根的路径上所有的点在以x为根的子树里的个数,这个我们离线后用树状数组+dfs序即可解决 #include <cstdi ...

  5. CentOS 7, Attempting to create directory /root/perl5

    By francis_hao    Apr 10,2017 在使用CentOS 7的时候,首次登陆会出现新建一个perl5文件夹的提示,删除该文件后,之后登陆还是会出现该提示并新建了perl5文件夹. ...

  6. io流中的装饰模式对理解io流的重要性

    为了说明 io流中的装饰者模式对理解io流的重要性,我想先简要介绍以下io的装饰模式. 装饰(decorator)你也可以翻译成修饰.比如:一个会精通化学数学的物理学家.在这个"物理学家&q ...

  7. CSS去掉 a 标签点击后出现的虚线框

    方法一: 在a标签里加入js控制,当a标签被聚焦时,强制取消焦点<a href="#" onfocus="this.blur();">测试</ ...

  8. CodeSmith和PowerDesigner (转)

    首先,既然要讲解如何使用CodeSmith和PowerDesigner快速生成批量代码,当然要先安装这2个软件啦,下面就简单说说如何安装破解这2款软件吧,当然破解只是学习之用,请大家不要用于商业用途哈 ...

  9. AtCoder Regular Contest 082 F

    Problem Statement We have a sandglass consisting of two bulbs, bulb A and bulb B. These bulbs contai ...

  10. [BZOJ1004] [HNOI2008]Cards解题报告(Burnside引理)

    Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红 ...