Python入门篇(二)

这篇主要是讲解类,Pythong类中私有属性、私有方法、动态添加属性、动态添加方法、多继承、静态方法写个存取款方法。

一、面向对象思想、简单的银行存取方法实现

class Bank:

    def __init__(self,name,money):
        self.__myMoney = money
        self.__name = name

    def get_money(self,money):
        if self.__myMoney<money:
            print('您余额不足  当前余额为:',self.__myMoney)
        else:
            self.__myMoney -=money
            print('取款成功 取款金额:{}元 余额为:{}元'.format(money,self.__myMoney))
    def save_money(self,money):
        self.__myMoney += money
        print('存款成功 存款金额为{} 余额为{}'.format(money,self.__myMoney))

myBank = Bank('张三',12)
myBank.get_money(1)
myBank.save_money(1000000)

二、私有方法

#  bank._Bank__getMoney() 私有方法调用

class Bank():
    __money = 1000
    name = 'father'
    def __getMoney(self):
        print('money为',self.__money)
    def getMoney(self):
        self.__getMoney()

bank = Bank()
bank.getMoney()
# print(bank._Bank__getMoney())

三、私有方法继承么?

class Father():
    age = 12
    __name = '陈旭恒'
    def __getName(self):
        print('father Name:',self.__name)
    def run(self):
        # self.__getName()
        print('每天跑步上班')
class Son(Father):
    def get(self):
        f = Father()
        print(f.age)
father = Father()
father.run()
print('-----------')
son = Son()
son.get()

四、多继承的小细节

#多继承 一个类继承多个类,继承类中共有方法,依照继承顺序,回执行左边第一个
class Cat():
    def __init__(self):
        print('I am Cat')
    def run(self):
        print('飞檐走壁')
class Dog():
    def __init__(self):
        print("I am Dog")
    def run(self):
        print('走走蹦蹦')

class Zoo(Cat,Dog):
    def run(self):
        print('This is Zoo')

zoo = Zoo()
zoo.run()
#结果
#I am Cat
#This is Zoo

五、类中的信息方法

#类的属性
class A:
    pass
class Demo(A):
    '''
    这是Demo类 继承A类
    '''
    name = '宏星'
    def speak(self):
        print(self.name,'闪闪')

print(Demo.__doc__) #类的注释说明 只有一个 只识别多行注释
print(Demo.__name__)#类名
print(Demo.__bases__)#类的属性
print(Demo.__dict__)#类的素有信息

六、动态添加属性、方法

#动态添加属性
class Demo():
    #限制属性的动态添加  (元组中是范围)
    __slots__ = ('name','sex','money')
d = Demo()
print(hasattr(d,'name'))#判断属性是否存在
print(getattr(d,'sex',404))#判断属性是否可以获得到
# print(setattr(d,'name'))
# print(d.name)
d.name = '陈旭'
# d.a = 'a'


#动态添加方法  绑定单个实例的方法

#1、 导入 MethodType
from types import MethodType

#2、 定义空类
class Demo():
    pass
#3、 实例化
demo = Demo()
#4、 定义方法
def run(self):
    print('我是外部方法')
demo2 = Demo()

demo2.run = MethodType(run,demo2)
# demo.run()
demo2.run()

七、静态方法

#静态方法使用
class Demo:
    @staticmethod
    def static_Dom():
        print('static')
    def run(self):
        self.static_Dom()
        print('你好陈旭恒')
Demo.static_Dom()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值