python类、对象、方法、属性之类与对象笔记
为什么80%的码农都做不了架构师?>>>
python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。。。。。。
我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征。它会汪汪叫,会摇尾巴等是它的行为。
我们在描述一个真实对象(物体)时包括两个方面:
它可以做什么(行为)
它是什么样的(属性或特征)。
在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)
结论:对象=属性+方法
在python中,把具有相同属性和方法的对象归为一个类(class)
比如人类,动物,植物等等,这些都是类的概念。
类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。
class people:def speak(self):print ("hello!")
定义一个people类,定义一个speak方法,但没有定义属性,
因为属性不属于类,而是属于各个类的实例。也就是说属于对象。
因此我们可以给每个实例设置不同的属性
class people: #类 def speak(self): #方法 print ("hello!") >>> jack = people() #创建jack实例
>>> tom = people() #创建tom实例
>>> import tab #导入table键功能模块
>>> jack. #输入jack.<tab键>,可以看到以下方法
jack.__class__ jack.__doc__ jack.__module__ jack.speak(
>>> jack.speak() #引用speak方法
hello!
>>> jack.age=39 #添加age属性
>>> jack.height=120 #添加height属性
>>> jack.
jack.__class__ jack.__module__ jack.height
jack.__doc__ jack.age jack.speak(
>>> jack.height
120
>>> jack.age
39
#初始化对象
创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例
就会运行这个方法。可以向__init__()方法传递参数,
这样创建对象时就可以把属性设置为你希望的值
__init__()这个方法会在创建对象时完成初始化,
class peo:def __init__(self,name,age,sex):self.Name = nameself.Age = ageself.Sex = sexdef speak(self):print "my name" + self.Name
实例化这个类的对象时:
>>> zhangsan=peo("zhangsan",24,'man')
>>> print zhangsan.Age
24
>>> print zhangsan.Name
zhangsan
>>> print zhangsan.Sex
man
# ----------
>>> print zhangsan
<__main__.peo instance at 0x7fe5041ec248>
'''
要让print能打印出来,就得使用__str__方法
__str__()这个方法告诉python在打印(print)一个对象时,具体显示什么内容
'''
#! /usr/bin/python
class peo:
def __init__(self,name,age,sex):
self.Name = name
self.Age = age
self.Sex = sex
def speak(self):
print "my name" + self.Name
def __str__(self):
msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
# msg='my name is: ' +self.Name+ ","+ "my age is: " + str(self.Age) +','+ "my sex is:" +self.Sex
return msg
shanghai=peo('shanghai','23','man')
# shanghai=peo('shanghai',23,'man')
'''
msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
此处23是年龄,但被转成了字符串,因为self.Age定义的是字符串
如果不将23转义,则会报错
如果希望在程序中就事先转义,需要使用str(self.Age)
'''
print shanghai
'''
之前多次用到self这个形参
类就好比是一张蓝图,使用一个类可以创建多个对象实例,
speak()方法在被调用时,必须知道是哪个对象调用了它.
这里self参数就会告诉方法是哪个对象来调用的.这称为实例引用。
zhangsan.speak()就好比写成了peo.speak(zhangsan)
'''
转载于:https://my.oschina.net/kgjc/blog/601981
python类、对象、方法、属性之类与对象笔记相关推荐
- python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...
python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...
- PYTHON 类定义,属性,初始化
文章目录 PYTHON 类定义,属性,初始化 类定义 类的私有属性 类方法 类的初始化和析构 初始化 析构 PYTHON 类定义,属性,初始化 为了代码的编写方便简洁,引入了类的定义: 一般,使用 c ...
- 实例对象的属性和原型对象中的属性重名问题 神奇的原型链 继承 继承案例
实例对象的属性和原型对象中的属性重名问题 <!DOCTYPE html> <html lang="en"> <head><meta cha ...
- python类的方法中定义函数
代码: class A():def run(self):def p():print('hello')p()a = A() a.run() 输出: hello 注意类中方法和普通函数的区别,python ...
- python类的方法三种访问权_Python基础33-面向对象(继承资源(属性与方法)的使用注意)...
在Python中, 继承是指子类对父类资源的使用权 1 继承-属性与方法的使用权限 1.1 测试属性与方法分别如下 公有属性/方法 受保护属性/方法 私有属性/方法 class Animal: a = ...
- python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...
python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...
- python类之间方法互相调用_Python中类与类之间属性和方法的调用
Python中类与类之间属性和方法的调用 class A(object): #定义一个类 name='python' #类属性 def __init__(self): #实例属性 self.age= ...
- python 类的特殊属性、特殊方法 __str__,__bases__,__mor__,__add__,__call__
str 方法 class A():def __str__(self): # 重写__str__方法,功能:自动打印以下内容return "这是__str__方法" a = A() ...
- Python类的私有属性、私有方法、类方法
一.类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有 1.类的私有属性不能被类的实例直接访问,示例代码如下: class A:__secretCount = 0 # 私有 ...
- python类中的属性分为类属性和实例属性两种_python中类和实例如何绑定属性与方法示例详解...
前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Python是动态语言, ...
最新文章
- centos 桥接配置 设置网络代理 lnmp搭建
- Vijos1448题解---线段树+括号法
- JavaScript —从回调到异步/等待
- 链表的翻转(java)
- 【备忘】二叉树遍历的迭代实现
- eclipse 创建 javaWeb 项目 如何 配置 tomcat
- 强化学习——从最简单的开始入手
- 倒立摆matlab仿真,PID控制仿真,simulink仿真最简单版本(保姆级),一阶倒立摆,附源码
- 微信公众开发 表情开发php,微信开发Emoji表情的实例教程
- mapboxgl 互联网地图纠偏插件(一)
- Photoshop安装包破解安装教程
- 快速提升网站排名的七种方法
- 酷派手机锁屏壁纸提取
- 作文组装计算机,组装电脑作文200字
- 公告栏文本横向循环滚动
- 孤独者的自我救赎[自我的认知]
- Arun Gupta通过将HTML5与Java EE 7拥抱来提高生产力
- speedoffice如何在Word文档中输入美元符号
- PHP开发阿里云短信服务接口
- JAVA强制类型转换总结
热门文章
- 艾伟_转载:.NET 4.0中数组的新增功能
- Oralce null
- 检索出现次数的SQL语句
- 网络yum网址:http://mirrors.163.com/.help/
- [BZOJ 2002][Hnoi2010]Bounce 弹飞绵羊(分块)
- 定义文字用em、rem,效果和px一样
- MongoDB 数据分发
- android 开发 获取各种intent (图片、apk文件、excel、pdf等文件)
- 微软私有云分享(R2)1-自定义脚本
- [翻译]StructureMap 指南 – .NET中的依赖注入和控制反转