博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 面向对象
阅读量:6150 次
发布时间:2019-06-21

本文共 1923 字,大约阅读时间需要 6 分钟。

  hot3.png

面向对象

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

class car:    #静态字段,类属性    cars='车的种类之一'    def __init__(self,name):        #动态字段,实例属性        self.name=namecar1=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=agep1=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=pricecar1=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 
print(car.speed)AttributeError: type object 'car' has no attribute 'speed''''

静态字段和动态字段

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

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

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

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

def foo()

     #构造的函数 ()里面要传参数 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

转载于:https://my.oschina.net/esdn/blog/791728

你可能感兴趣的文章
windows server 2008解决盘符C盘变D盘的安装方法
查看>>
【MySQL】MyRocks 漫谈
查看>>
关于统计信息过期的性能落差
查看>>
oracle 10g 如何用srvctl 添加数据库资源到cluster中
查看>>
[20150629]简单的加密连接.txt
查看>>
关于exp/imp的总结学习
查看>>
MyBatis 向Sql语句中动态传参数·动态SQL拼接
查看>>
java性能优化方案——使用entrySet()
查看>>
[20150904]exp slow.txt
查看>>
“重定向次数过多”或者“Too many automatic redirections were attempted”的错误:
查看>>
js 时间戳转为日期格式
查看>>
WordPress with LEMP on Alibaba Cloud – Part 3 Configuring a Domain and Let's Encrypt SSL
查看>>
Maven 版 JPA 最佳实践(转)
查看>>
Swagger简介
查看>>
【元气云妹】短信服务
查看>>
linux命令之uptime
查看>>
Kafka源码分析之Sender
查看>>
MySQL master-slave主从复制环境搭建初试
查看>>
Intellij idea断点 Debugger slow: Method breakpoints my dramatically slow down debugging
查看>>
《微信公众平台开发》图书介绍
查看>>