原因: __str__()这个特殊方法将对象转换为字符串的结果 效果图: 代码: # 定义一个Person类 class Person(object): """人类""" def __init__(self, name , age): self.name = name self.age = age p = Person('小黑',18) print(p) print('\n\n\n\n\n') # 定义一个Person类 class Person…
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“特征”和“行为” 2.面向过程和面向对象 #面向过程指的是变量和函数.“散落”在各种文件中,或者在文件的各个位置,相互没有联系,函数与变量没有相关性,非常不利于维护,设计模式不清晰. #为此才有面向对象概念的诞生. #面向对象指的是相关的变量和函数都“封装”在对象里面,以对象为单位来管理代码.好处在…
面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列…
类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 >>>class Person(object): #所有的类都是从object类继承 pass #pass先不做任何处理,先跳过,为了防止语法错误 创建类的属性 >>> class Person(object): address = 'Earth' #类的属性直接在类内部定义,当实例属性和类属性重名时,实例属性优先级高 def __init__(self, name): self.name =…
1. 如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class className: block 注意类名后面有个冒号,在block块里面就可以定义属性和方法了.当一个类定义完之后,就产生了一个类对象.类对象支持两种操作:引用和实例化.引用操作是通过类对象去调用类中的属性或者方法,而实例化是产生出一个类对象的实例,称作实例对象.比如定义了一个people类: c…
转自:  http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/ 1.关于定义类的一些奇特之处  今天在Python中定义一个类,很奇怪,不需要事先声明它的成员变量吗?暂时不知,先记录下来: class Account(object):    "一个简单的类"    account_type="Basic"    def __init__(self,name,balance):    …
方法重写 如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法: #!/usr/bin/env python #coding:utf8 class Parent: def myMethod(self): print '调用父类方法' class Child(Parent): def myMethod(self): print '调用子类方法' c = Child() c.myMethod() 执行以上代码输出结果如下: 调用子类方法 下表列出了一些通用的功能,你可以在自己的类中重…
在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定,因此不存在出于多态考虑来进行继承.但继承可以让子类获得超类(也称为父类.基类,老猿习惯称父类,文中可能会有超类和父类并存的说法,老猿也没有特地去统一,还请大家见谅)的全部功能,超类实现过的方法,子类不需要重新定义就能自动拥有.因此继承还是非常重要的. 一.    语法 要指定超类,可在class语句…
利用反射机制输出整个类 代码实例 import java.lang.reflect.Field; import java.lang.reflect.Modifier; public class ReflectTest05 { public static void main(String[] args) throws ClassNotFoundException { //创建一个字符串缓冲区 StringBuffer stringBuffer=new StringBuffer(); //获取类对象…
python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,…
上一节将到面对对象必须先抽象模型,之后直接利用模型.这一节我们来具体理解一下这句话的意思. 面对对象最重要的概念就是类(class)和实例(instance),必须牢记类是抽象的模板,比如student类,而实例是根据类创建出来的一个个具体的'对象',每个对象拥有相同的方法,但各自的数据可能不同. 一.类的创建和实例化 在python中,类是通过class关键字创建的 class Student(): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词.关键字pas…
Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规范,从这个角度来看,在以后我们学习设计模式的时候,对设计模式的理解会很有帮助.其次,语言中类是抽象的模板,用来描述具有相同属性和方法的对象的集合,比如Animal类.而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. Python使用class关…
首先记录下面向对象的名词: 对象:python万物皆对象,程序设计的东西在对象上体现. 类:具有相同属性和行为的对象的集合. 消息:各个对象之间通过消息相互联系. 方法:对象功能实现的过程. 封装:把对象的属性和行为(方法)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节.大白话讲就是,把不想告诉或者不该告诉别人的东西隐藏起来(private关键字修饰),把可以告诉别人的东西公开,别人只能用我提供的功能实现需求,而不知道内部是如何实现的. 继承:从已有的类中派生出新的类,我们把它称之为子类,…
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 创建实例是通过类名+()实现的 类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响: 方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据: 通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节. 和静态语…
0x00 前言 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规范,从这个角度来看,在以后我们学习设计模式的时候,对设计模式的理解会很有帮助.其次,语言中类是抽象的模板,用来描述具有相同属性和方法的对象的集合,比如Animal类.而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. Python使用class关键字来定义类,其基本结构如下: class 类名(父类列表)…
1 Python的函数传递: 首先所有的变量都可以理解为内存中一个对象的'引用' a = 1 def func(a): a = 2 func(a) print(a) # 1 a = 1 def fun(a): print("函数里",id(a)) # 函数里 41322472 a = 2 print("赋值后",id(a), id(2)) # 赋值后 41322448 41322448 print("函数外",id(a), id(1)) # 函数…
Python中的类的定义以及使用: 类的定义: 定义类 在Python中,类的定义使用class关键字来实现 语法如下: class className: "类的注释" 类的实体 (当没有实体时 使用pass代替) 下面定义一个鸟类; class flyBord: """鸟类""" pass #这里我们并没有实体所以我们使用pass代替 这就是一个类的最基本的定义 类中的__init__函数:类似于java中的构造函数,以及类…
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 简介:所谓的类只是一个抽象的定义,而实例则是具体的对象.它们之间的差别就想我脑海中的石头和我手中的石头一样,只有后者才真实存在.类就是一个模板,每一个类创建好之后,就是一个模板.可以用这个模板生成一个个实例对象. 新旧式类的差别 object 是 Python 为所有对象提供的 基类,提供…
1:绑定和非绑定 当存在一个实例时,方法才被认为是绑定到那个实例了.没有实例时方法就是未绑定的.在很多情况下,调用的都是一个绑定的方法. 调用非绑定方法并不经常用到,其中一个主要的场景是:派生一个子类,而且要覆盖父类的方法,这时需要调用那个父类中被覆盖掉的构造方法: class EmplAddrBookEntry(AddrBookEntry): 'Employee Address Book Entry class' def __init__(self, nm, ph, em): AddrBook…
在Python中经常会混淆类属性和实例属性的概念,今天专门记录一下个人理解以免日后忘记. 看下面的例子: class Tencent(): i = 10 # 此处i为类属性 def __init__(self,name): self.name = name # 此处name为实例属性 def function(self): print(self.name) a = Tencent(100) #实例化 print(a.i) print(a.name) print(Tencent.i) 运行当然是没…
由于之前有一定基础,所以python中的类的概接受的比较快,与其他语言一样, python也是通过类来进行事务的抽象,一切皆对象,要不然怎么说程序员不缺对象呢. 言归正传,python中类的声明是class 类名(父类):的形式定义,在类中self表示指向自身,__init__方法表示的是构造方法,也就是初始化数据所用的方法,与其他语言一样,同样构造方法参数的不确定性也决定了类的其他强大特性,比如多态,继承. python中在子类中也允许重写父类方法,且python子类中允许为父类添加属性值.比…
Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问class属性时,先检索自己的names, 如果有的话就直接取出,没有的话就去找class的names里面找,找不到就是error啦 class Pclass(object): """docstring for Pclass""" num = 10 def __init__(self): super…
Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不是真正了解这一块. 举个例子进行测试一下: In [19]: class A(): ....: pass ....: In [20]: a = A In [21]: type(a) Out[21]: classobj In [22]: class B(object): ....: pass ....…
实例属性 1.类被实例化后才会具有的属性 2.一般在_init_()方法中创建并初始化 3.直接使用即定义:self.<属性名> 4.引用方法:self.<属性名> 5.self用来表示类的实例的 例如:在类TestCss当中定义实例属性 class TestCss: cssa = 'class-attribe' def __init__(self): self.a = 0 self.b = 10 def info(self): print('a:',self.a,'b:',sel…
今天花了两个多小时后搜索相关博客看了看python中有关类和实例的介绍,差不多大概明白了. python中的类和c++中的类是一样的,不同之处就是c++的类,如果含有成员变量,并且成员变量发生变化后,会被类的对象(实例)或者是子类的对象继承到,但是python中如果类的实例之前已经对其自身的属性,即实例属性操作过,那之后不管类的属性是否发生变化,都与它无关,并且值不会继承过来.至于实例,是类通过一些方法构造出来的.下面贴上一个例子,例子是来自于:http://onlypython.group.i…
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,…
类和实例: 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: >>> class Student(object): ... pass ... >>> class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(obj…
类和实例 类是对象创建实例的模板,而实例则是对象的实体.类使用class关键字定义: class MyClass:    pass python中创建实例直接使用工厂函数(类名加上一对括号),和其他的语言使用new关键字有所不同: my_obj = MyClass() 一般来说,类名以大写字母开头,而对象名则以小写字母或者下划线开头. 实例化对象时,会执行类定义中的__init__()方法,该方法执行时包含实例的各种初始化操作. 方法和函数的区别:方法由对象调用,在方法定义中,第一个参数必须是显…
https://www.cnblogs.com/evablogs/p/6688938.html 类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 1 2 >>>class Person(object):           #所有的类都是从object类继承               pass                 #pass先不做任何处理,先跳过,为了防止语法错误   创建类的属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14…
面向对象编程 Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之…