教练我想学Python:(二)好的开始,就从找个对象开始吧

系列

前文:选择困难与PyCharm初体验
后篇:列表与切片,边学边刷LeetCode

序:对Python一无所知的作者竟然开了这个系列…长话短说,学Python的第二天,既然是面向对象的语言,那就面向对象吧!…Emmm…对象在哪?
P.s:学艺不精,请大佬们多多点拨:)

文章目录

  • 系列
  • 对象
  • 总结


对象

作为一门面向对象的语言,那就必须来学一下怎么找个对象!…怎么来写一个对象。
教练我想学Python:(二)好的开始,就从找个对象开始吧_第1张图片

class Coach:
    CoachName = "教练" #公共变量
    __weight = 100 #开头两个下滑线代表私有 变量与方法都可以加两个下滑线来表示私有
    def __init__(self,name:str): #构造函数,self不是关键字,可以是其他任何命名
        self.CoachName = name # 赋值操作,操作的都是实例而不是类,所以要用self.
    def speak(self): # def 是声明函数的关键字
        print("%s:小伙子,你有对象吗?"%self.__class__.CoachName) # 使用类本身的变量,不是实例
    def agree(self):
        print("%s:行吧行吧,找不到对象至少你能创建一个了吧"%self.CoachName)

class LiuChuanFeng(Coach): # 继承
    Name = "流川枫"
    def __init__(self): #继承后构造函数中需要对父级进行初始化(如果父级有需要的情况)
        Coach.__init__(self,"教练")

    def speak(self): #父级方法的重写
        print("%s:八嘎"%self.Name)
    def agree(self):
        print("%s:Zzz...."%self.Name)
    def coachAgree(self):
        super(LiuChuanFeng, self).agree() #子类调用父级被重写的方法

class Adream:
    state = "这是一个梦"

class YingMuHuaDao(Coach,Adream): #多重继承
    def __init__(self):
        Coach.__init__(self,"教练")
    def dreaming(self):
        print("%s(%s):哈哈哈,你俩都被我继承了!"%(Name,Adream.state))

# 运行时从这里开始
coach = Coach("胖子")  #创建对象实例
liuChuanFeng = LiuChuanFeng()
Name = "樱木花道"

print("%s:%s你是哪个?"%(Name,coach.CoachName))
coach.speak()
print("%s:你为啥这么高级的speak,我就会Print"%Name)
liuChuanFeng.speak()
print("%s:教练,我想学Python!"%Name)
liuChuanFeng.agree()
liuChuanFeng.coachAgree()
me = YingMuHuaDao()
me.dreaming()

总结

Python3的面向对象非常的简单,而且取别于C#它可以实现多继承。
容易混淆的地方在于self的使用,在类里面,方法中所有的赋值操作一般都是针对于实例来言的,所以一定要使用self.Name = XXX 这样来赋值,而不是Name = XXX,这个初学者很容易错(别问我怎么知道的
继承会继承方法与属性,若执行了父级的方法存在对属性的改变,则其实是在改变子级对象中的属性值

class Coach():
	Name = "教练"
	def __init__(self,name:str): 
		self.Name = name
		
class LiuChuanFeng(Coach):
	Name = "流川枫"
   def __init__(self): 
   # 在Coach的初始化方法中对Name进行了赋值,这里的self其实是LiuChuanFeng的实例
       Coach.__init__(self,"教练") 
       print(self.Name) # 输出为 教练 

.
.
.
.
.


嗨,我是作者Vin129,逐儿时之梦正在游戏制作的技术海洋中漂泊。知道的越多,不知道的也越多。希望我的文章对你有所帮助:)


你可能感兴趣的:(Python,python,游戏开发,脚本语言,教练我想学Python)