面向对象
class Cat(object):
def __init__(self, name='猫'):
print('这是一个初始化方法')
self.name = name
self.__zr = 18
def __zr(self):
print('%s的主人%s' % (self.name, self.__zr))
def eat(self):
print('%s爱吃<。)#)))≦' % self.name)
def __del__(self):
print('%s去了' % self.name)
def __str__(self):
return '我是小猫[%s]' % self.name
tom = Cat('Tom')
print(tom.name)
print(tom)
del tom
lazy_cat = Cat('懒猫')
lazy_cat.eat()
cat = Cat()
cat.eat()
面向对象特征
class Animal(object):
def eat(self):
print('吃')
def drink(self):
print('喝')
def run(self):
print('跑')
def sleep(self):
print('睡')
class Dog(Animal):
def bark(self):
print('汪汪叫')
def eat(self):
print('啥都敢吃')
super().eat()
print('*&^%$$@!#$%&')
wangcai = Dog()
wangcai.eat()
wangcai.drink()
wangcai.run()
wangcai.sleep()
wangcai.bark()
class A:
def test(self):
print('test 方法')
class B:
def demo(self):
print('demo 方法')
class C(A, B):
pass
c = C()
c.demo()
c.test()
print(C.__mro__)
class Dog(object):
def __init__(self, name):
self.name = name
def game(self):
print('%s蹦蹦跳跳的玩耍...' % self.name)
class XioaTianQuan(Dog):
def game(self):
print('%s飞到天上玩耍...' % self.name)
class Person(object):
def __init__(self, name):
self.name = name
def game_with_dog(self, dog):
print('%s和%s一起玩耍' % (self.name, dog.name))
dog.game()
wangcai = XioaTianQuan('哮天犬')
xiaoming = Person('小明')
xiaoming.game_with_dog(wangcai)
class Tool(object):
count = 0
def __init__(self, name):
self.name = name
Tool.count += 1
tool1 = Tool('斧头')
tool2 = Tool('榔头')
tool3 = Tool('水桶')
print(Tool.count)
class Game(object):
top_score = 0
def __init__(self, player_name):
self.player_name = player_name
@staticmethod
def show_help():
print('帮助信息:让僵尸进入大门')
@classmethod
def show_top_score(cls):
print('历史最高分:%d' % cls.top_score)
def start_game(self):
print('%s开始游戏了...' % self.player_name)
Game.show_help()
Game.show_top_score()
game = Game('小明')
game.start_game()
class MusicPlayer(object):
def __new__(cls, *args, **kwargs):
print('创建对象,分配空间')
instance = super().__new__(cls)
return instance
def __init__(self):
print('音乐播放器初始化')
player = MusicPlayer()
print(player)
class MusicPlayer(object):
instance = None
init_flag = False
def __new__(cls, *args, **kwargs):
if cls.instance is None:
cls.instance = super().__new__(cls)
return cls.instance
def __init__(self):
if MusicPlayer.init_flag:
return
print('播放器初始化')
MusicPlayer.init_flag = True
player1 = MusicPlayer()
print(player1)
player2 = MusicPlayer()
print(player2)