##opp 面向对象的程序开发
#类的定义
'''
class A:
pass
class A():
pass
class A(object):
pass
'''
#类的基本结构 成员属性和成员方法
#类的命名 大驼峰命名法
# 面向对象的三大特性 封装 继承 多态
#1.封装
'''
类中成员 成员方法
1.私有:在类内可以访问,在类外不能访问
2.公有:在类内和类外都可以访问
绑定方法:
1.绑定对象:默认当该参数传给方法
2.绑定到类:对象调用类成员方法,默认把类当成参数
使用方法
'''
class MyCar():
#公有
logo = "Cloud"
#私有
__price = "1202万"
def run(self):
print("雲,logo={},price={}".format(self.logo,self.__price))
def __info(self):
print("柳月")
obj = MyCar()
#实例化访问成员的属性和方法
#公有
print(obj.logo)
obj.run()
#私有
#实例化对象添加公有成员属性
obj.color = "red"
print(obj.color)
#__dict__ 获取类对象的成员
print(obj.__dict__)
#实例化对象添加公有成员方法
#1.无参方法 不会自定义传参
def cloud():
print("雲")
obj.cloud = cloud
#2.有参方法
def Cloud (self,name):
print("柳月,{},{}".format(name,self.color))
obj.Cloud = Cloud
#升级版
import types
#一种创建绑定方法,系统自动把对象传递给方法
#types.MethodType(方法,对象)
types.MethodType(Cloud,obj)
#3.lambda表达式
obj.liu = lambda:print("liu")
obj.liu()
##类的操作
'''
使用方法
类.成员属性
类.成员方法
'''
class MyCar():
#公有
platenum = "鲁A12345"
#私有
__earning = "1202万"
def car_info():
print("车牌")
def __money_info():
print("收入")
#1.定义类访问公有属性和方法
print(MyCar.platenum)
MyCar.car_info()
#2.定义动态的公有属性
MyCar.oil = "60L"
#3.定义类动态添加公有成员和方法
#无参方法
def car_light():
print("车灯")
MyCar.car_light = car_light
MyCar.car_light()
#有参方法
def car_engine(name):
print("{}发动机".format(name))
MyCar.car_engine = car_engine
MyCar.car_engine("1.6T")
#lambda方法
MyCar.bus = lambda : print("公交")
#对比对象和类的之间的不同
'''
1.类中无参方法只能用类来调取,对象无法调取
2.对象可以调用类中的成员,反过来,类不能调用对象中的成员
3.每创建一个对象都会在内存中占用一份空间,对象之间彼此独立
'''
#如何在类外访问私有成员
class Plane():
captian = "liu"
__airsister = "3名"
#有参
def fly1(self):
print("飞行平流层")
def __age(self):
print("年龄")
#无参
def fly2():
print("飞行大气层")
def __earn():
print("收入")
obj = Plane()
#方法1:
#python 私有化:采取了改名策略 _类名 + __airsister
print(obj._Plane__airsister)
#方法2:定义方法,简介方法
#使用类对象删除相应的成员
'''
1.对象可以访问类中的公有成员,但是无权修改或者删除该类中的成员
2.对象在访问成员时,优先访问对象自己的成员,如果没有再访问类的,类如果也没有直接报错
'''
#删除对象成员
#del obj.captian
#删除对象方法
#del obj.方法 不加括号
#删除类中的成员属性
del Plane.captian
#删除类中的成员方法
del Plane.fly1
#对象无法调用无参方法,类可以调用对象的绑定方法
python_day20
最新推荐文章于 2025-06-04 16:07:42 发布