python中面向对象空间时间_python 面向对象

面向对象

面向对象编程——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

print(car.speed)

AttributeError: type object 'car' has no attribute 'speed'

'''

静态字段和动态字段

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

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

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

不传参数self

def foo()

不用写()

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值