Python语法简单整理(三)

本文是对Python基础语法的快速梳理,涵盖了变量、数据类型、条件语句、循环结构和函数等核心概念,旨在帮助初学者巩固基础。
摘要由CSDN通过智能技术生成
class Cat:

    def eat(self):
        print("吃鱼")

    def drink(self):
        print("喝水")  #定义一个 猫类,内部两个方法


cat = Cat()  #	定义猫的对象
cat.eat()	# 	输出吃鱼	
cat.drink()	#	输出喝水

class Cat:							#定义猫类
    def __init__(self,new_name):	#定义__init__方法  前后各两个横线,代表内置方法
        # self.name = "Tom"
        self.name = new_name

    def eat(self):
        print("%s爱吃鱼" % self.name)


tom = Cat("Tom")		#定义猫类,传入名字Tom
tom.eat()				#输出Tom爱吃鱼

class Person:		#定义一个 Person 类

    def __init__(self,name,weight): #定义__init__方法,参数:name,weight
        self.name = name
        self.weight = weight

    def __str__(self):
        return "我叫%s 体重是 %.2f 公斤"%(self.name,self.weight)
    def run(self):
        pass
    def eat(self):
        pass


xiaoming = Person("小明", 75.0)
print(xiaoming)
xiaoming.run()
xiaoming.eat()
class Animal:  #定义Animal类
    def eat(self):
        print("吃")

    def drink(self):
        print("喝")


class Dog(Animal): #定义Dog类,继承Animal类
    def bark(self):	#定义 bark()方法
        print("旺旺~")

dog = Dog()
dog.eat()	    # 输出 吃
dog.drink()		# 输出 喝
dog.bark()		# 输出 旺旺~


class xiaotianquan(Dog):
    def bark(self):
       # super().bark() 如果该语句没有注释掉,在调用该方法时,会先输出旺旺~,再输出嗷呜~
        print("嗷呜~")

xtq = xiaotianquan()
xtq.eat()	#输出 吃 继承自父类方法的父类方法
xtq.bark() #输出 嗷呜~,覆盖了继承自父类的方法
class A:

    def test(self):
        print("test方法")


class B:

    def demo(self):
        print("demo方法")


class C(A,B):  #多继承
    pass

c = C()

c.test() 	 #输出 test方法
c.demo()	 #输出 demo方法
class Dog(object): #为了向下兼容,所有类都写上继承 Object类

    def __init__(self,name):
        self.name = name

    def game(self): #定义game方法
        print("%s 蹦跳" % self.name)

class XTQ(Dog):  #定义 XTQ 类,继承 Dog 类
    def game(self): #定义game方法,覆盖父类方法
        print("%s在天上" %self.name)

class Person(object): #定义 Person 类
    def __init__(self,name):
        self.name = name

    def game_with_name(self,dog): # 定义和狗玩的方法,参数传入Dog类对象
        print("%s 和 %s 玩"%(self.name,dog.name))
        dog.game()

wangcai = Dog("旺财")
wang = XTQ("飞天旺财")
xiaoming = Person("小明")
xiaoming.game_with_name(wangcai)	"""  输出  小明 和 旺财 玩
									           旺财 蹦跳 """
xiaoming.game_with_name(wang)		"""  输出  小明 和 飞天旺财 玩
										  	 	 飞天旺财在天上 """
class Tool(object):
  #类属性用来记录与这个类相关的特征
    count = 0

    def __init__(self,name):
        self.name = name
        Tool.count += 1

tool1 = Tool("斧子")
tool2 = Tool("镰刀")
tool3 = Tool("锤子")
print(Tool.count) # 输出3,__init__方法默认调用
class Tool(object):
  #类属性用来记录与这个类相关的特征
    count = 0
    @classmethod 	#类方法,传入参数cls,可以调用本类中的属性、方法等
    def show_tool_count(cls):
        print("工具对象的数量 %d" %cls.count) #通过 cls 调用了类属性 count
    def __init__(self,name):
        self.name = name
        Tool.count += 1


tool1 = Tool("斧头")
Tool.show_tool_count() #输出 工具对象的数量 1
tool2 = Tool("榔头")
Tool.show_tool_count() #输出 工具对象的数量 2	


class Dog(object):

    @staticmethod  #静态方法,不需要传入参数
    def run():
        print("跑了")

#通过类名,调用静态方法,不需要创建属性
Dog.run()  # 输出 跑了
class MusicPlayer(object):

    def __new__(cls, *args, **kwargs): #重写__new__方法
        # 1 创建对象时,new方法自动调用
        print("创建对象,分配空间")
        # 2 为对象分配空间
        # 3 返回对象的引用
        return super().__new__(cls)
		 #没有这句,Python解释器得不到分配了空间的引用,就不会调用对象的初始化方法
    def __init__(self):
        print("播放器初始化")

#创建播放器对象
player = MusicPlayer()

print(player) """ 输出 创建对象,分配空间
					  播放器初始化
					  <__main__.MusicPlayer object at 0x02A967B0>"""
class MusicPlayer(object):

    # 记录第一个被创建对象的引用
    instance = None
    def __new__(cls, *args, **kwargs):
        if cls.instance is None:
            cls.instance = super().__new__(cls)
        return cls.instance


# 创建多个对象


player = MusicPlayer()
print(player)			# 输出 <__main__.MusicPlayer object at 0x039D6770>
player2 = MusicPlayer() 
print(player2)			# 输出 <__main__.MusicPlayer object at 0x039D6770>
#	单例设计模式代码演示
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):
        # 1 判断是否执行过初始化
        if MusicPlayer.init_flag:
            return
        # 2 如果没有执行过,再执行
        print("初始化!")
        # 3 修改类属性的标记
        MusicPlayer.init_flag = True


# 创建多个对象
player = MusicPlayer()
print(player) """ 输出  初始化!
					    <__main__.MusicPlayer object at 0x00AF6BB0>"""
player2 = MusicPlayer()
print(player2)   """   	<__main__.MusicPlayer object at 0x029A6BB0> """
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值