文档章节

python 面向对象

明月知心
 明月知心
发布于 2016/11/21 22:19
字数 595
阅读 15
收藏 0

面向对象

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数

class car:
    #静态字段,类属性
    cars='车的种类之一'
    def __init__(self,name):
        #动态字段,实例属性
        self.name=name
car1=car('宝马')
print(car1.name)
print(car.cars)
print(car1.cars)

定义1个对象:class xxx:

实例化1个对象:def __init__(self,value)  

__init__ 是初始化的意思

定义car(车)这个类,而宝马这个实例对象拥有 name属性

通过字典,一次性取出实例对象所有属性 __dict__

class People:
    def __init__(self,name,sex,number,age):
        self.name=name
        self.sex=sex
        self.number=number
        self.age=age
p1=People('SBharmel','man',1350023,16)
print(p1.__dict__) #通过字典,一次性取出,对象所有属性

#输出结果:
#{'name': 'SBharmel', 'number': 1350023, 'sex': 'man', 'age': 16}
   

从属关系

cars 属于 car 类   类不能访问动态字段

name 属于 car1 对象      对象可以访问动态字段和静态字段

只有是从属关系,才能用 .xxx 方法获取

所以可以写 car.cars #获取静态字段 car1.name #获取动态字段

如果写成 car.name 则会报错

不能写的原因:

1.从属关系不同

2. 车这个类可能拥有多个类型如 宝马, 奔驰 他们两个的属性不一样,如价格,车速不同

#但是对象可以获取 静态字段 car1.cars

因为 car1 也属于 这个类 (car)

class car:
    def __init__(self,name,speed,price):
        self.name=name
        self.speed=speed
        self.price=price
car1=car('宝马','130km/h','100w')
car2=car('奔驰','140km/h','80w')
print(car1.name)       #正确
print(car2.price)      #正确
print(car.speed)       #报错 
'''
Traceback (most recent call last):
  File "E:\workspace\day4\backend\class.py", line 23, in <module>
    print(car.speed)
AttributeError: type object 'car' has no attribute 'speed'
'''

静态字段和动态字段

类创建的字段叫做 静态字段 cars

.sefl 创建的字段叫做 动态字段 name

静态方法(@staticmethod)和动态方法以及特性( property)

@staticmethod  #构造的函数()里面不传参数self

def foo()

@property      #构造的函数 ()里面要传参数 self,调用不用写()

hb.bar             #仅为实例对象的特性,类调用无内容

class Province:
    def __init__(self,name):
        self.name=name
    #动态方法
    def meeting(self):
        print(self.name+'正在开运动会')
    #静态方法
    @staticmethod            
    def foo():
        print('每个省要坚持环保')
    #特性
    @property
    def bar(self):
        print('someting')
    
hb=Province('湖北')
hb.meeting()
Province.foo()
hb.bar

© 著作权归作者所有

共有 人打赏支持
上一篇: python 面向对象二
下一篇: python3.0+ 反射
明月知心
粉丝 6
博文 158
码字总数 71882
作品 0
武汉
程序员
私信 提问
Python3快速入门——(1)python变量和输入输出函数

1、Python语言 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式...

飞天小橘子
03/14
0
0
Fedora 14下配置Python开发环境

pythone新闻1则 Python十分适合解决很多简单的、有趣的问题,比用C语言要省力的多。(这是实话,几行Python代码你就能制作一个简单的拼写检查程 序。)你会发现这种语言里几乎没有任何复杂或让...

墙头草
2011/03/29
0
1
走进Python世界(一)入门介绍

什么是Python Python是一种解释性,面向对象的,带有动态语义的高级程序设计语言。它能够使你在编程时能够保持一种简洁易懂的风格,不用过多考虑功能实现的。 Python的几个重要阶段 CNRI 时期...

Garrry
2015/07/16
0
0
云计算培训学院,云计算Python自动化运维开发实战

都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊、批量执行某个操作啊、写写监控脚本什么的。后...

长沙千锋
05/15
0
0
python异常处理和面向对象编程总结

异常处理和面向对象编程,是python编程中,比较重要的基础。在实际生产编程设计和开发中,异常处理和面向读象都是必须在设计和开发过程中充分考虑的。 对于python开发和面向对象这两部分基础...

yumushui991
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java8之stream流的基本操作

一、stream流简介 Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 Stream的优点:声明性,可复合,可并行。这三个特性使得stream操作更简洁,更灵活,更高效。 Stre...

嘴角轻扬30
31分钟前
1
0
Docker 可视化管理工具 Panama

Panamax 是一个开源的项目,可以通过简单的拖拉操作就可以实现发布复杂的 Docker 容器应用。Panamax 为 Docker, Fleet & CoreOS 提供友好的管理界面。 容器技术是下一代的虚拟机,但使用该技...

linuxprobe16
31分钟前
2
0
scala中hdfs文件的操作

对于org.apache.hadoop.fs.Path来说, path.getName只是文件名,不包括路径 path.getParent也只是父文件的文件名,同样不包括路径 path.toString才是文件的全路径名 创建文件 hdfs.createNew...

hblt-j
46分钟前
2
0
Eureka 和 zookeeper 的比较

小小小施爷
56分钟前
0
0
c++ 开源算法库 (持续更新)

最近在做算法方面的研究,发现很难找到一个全面而优质的科学计算算法库。不过还是找到一些,在此记录一下,将来也许自己写一个把所有这些整合在一起。本列表会持续不定期更新。 GSL http://w...

propagator
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部