python_day20

##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

#对象无法调用无参方法,类可以调用对象的绑定方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值