一、类与对
- 类:属性、动作(具有共同的属性,共同的动作)
- 对象:每个类下面的实例
- 语法: 关键字 class 函数 def
- 类的语法: class 类名 #顶格写 见名知意 驼峰命名(printName)
属性
函数
- 举例---->创建一个对象/实例化
换件实例: a = 类名() #那么a就是一个对象
#语法 class giilFriend: # 属性 name = "追求" age = 12 car =1 def earn_money(self): # 与普通函数的区别? 有一个关键字 self print("会赚钱") def cooking(self): print("做超级多的饭") # 实例化 gril_firend = giilFriend() print(gril_firend.name) print(gril_firend.age) print(gril_firend.cooking()) 控制台输出: 追求 12 做超级多的饭 None
- 操作注意:
- a.类里面的属性,和函数只能是类的实例去调用,不能单独调用--->局部变量
- b.调用属性的方法:实例名.属性名
- c.调用函数的方法:实例名.函数名
- d.类里面的函数调用类里面的属性:需要加一个关键字“self.属性名”
#语法 class giilFriend: # 属性 name = "追求" age = 12 car =1 def earn_money(self): # 与普通函数的区别? 有一个关键字 self return("会赚钱") def cooking(self): return("做超级多的饭") # 实例化 gril_firend = giilFriend() print(gril_firend.name) print(gril_firend.age) print(gril_firend.cooking()) 控制台输出: 追求 12 做超级多的饭
- 可以进行传参:传参和以前的传参一致
#语法 class giilFriend: # 属性 name = "追求" age = 12 car =1 def earn_money(self,money): # 与普通函数的区别? 有一个关键字 self return("会赚钱%s" %money) def cooking(self): return("做超级多的饭") # 实例化 gril_firend = giilFriend() print(gril_firend.name) print(gril_firend.age) print(gril_firend.cooking()) print(gril_firend.earn_money(30000)) 控制台输出: 追求 12 做超级多的饭 会赚钱30000
- 类里面的函数调用类里面的属性与函数:需要加一个关键字“self.属性名 self.函数名”
class giilFriend: # 属性 name = "追求" age = 12 car =1 def earn_money(self, money): # 与普通函数的区别? 有一个关键字 self return ("会赚钱%s" % money) # 函数 def cooking(self): return ("做超级多的饭") def get_name(self): return ("女朋友的名字%s" %self.name) #类里面的函数调用类里面的属性 def get_cooking(self): return ("做了多少饭:%s" %self.cooking()) # 类里面的函数调用类里面的函数 def get_money(self, n1): return ("转了好多钱: %s" %self.earn_money(n1)) #类里面的函数调用类里面可以传参的函数 # 实例化 gril_firend = giilFriend() print("1:", gril_firend.name) print("2:", gril_firend.age) print("3:", gril_firend.cooking()) print("4:", gril_firend.earn_money(30000)) print("5:", gril_firend.get_name()) print("6:", gril_firend.get_cooking()) print("7:", gril_firend.get_money(2000)) 控制台输出: 1: 追求 2: 12 3: 做超级多的饭 4: 会赚钱30000 5: 女朋友的名字追求 6: 做了多少饭:做超级多的饭 7: 转了好多钱: 会赚钱2000
class giilFriend: name = "追求" age = 12 def earn_money(self, money): # 与普通函数的区别? 有一个关键字 self return ("会赚钱%s" % money) def get_name(self, name): return ("女朋友的名字%s" %name) def get_money(self, n1, name): # 传参与调用 name2 = self.get_name(name) print(name2) return ("转了好多钱: %s" %self.earn_money(n1)) # 实例化 gril_firend = giilFriend() print("%s" %gril_firend.name) print(gril_firend.get_money(7000, '那兔')) 控制台输出: 追求 女朋友的名字那兔 转了好多钱: 会赚钱7000
练习题:
创建一个车子类: 属性:价格 颜色 品牌 技能:上山 下海 上天
class car: price = 100000 color = 'green' brand = '大众' def skill_01(self, s1): return ("技能1:%s" %s1) def skill_02(self, s2): return ("技能2:%s" % s2) def skill_03(self,s1,s2): ski_1 = self.skill_01(s1) ski_2 = self.skill_02(s2) return ("终极技能:劳资能上天,%s" %(ski_1+ski_2)) mycar = car() print("我的车子的价格是%s" % mycar.price, "颜色是%s" % mycar.color, "品牌是%s" % mycar.brand) print("我的车子贼6呢:%s!!!" % mycar.skill_03("劳资可以上刀山", "劳资可以下火海"))