类:
属性--数据
方法--函数
[root@k8s-master python3-test]# cat 9.py #! /usr/bin/python3 #encoding=utf-8 class Dog: #类名第一个字母大写 def bark(self): 函数括号中要加个self print("wangwang")
[root@k8s-master python3-test]# python3 9.py 汪汪…… the dog runs quickly 5 red [root@k8s-master python3-test]# cat 9.py #! /usr/bin/python3 #encoding=utf-8 class Dog: def bark(self): print("汪汪……") def run(self): print("the dog runs quickly") ##在方法中可以对属性进行修改
##self.weight +=5 ##创建一个小狗对象 xiaogou = Dog() #创建一个对象,并用xiaogou进行保存 ##调用小狗对象的方法(函数) xiaogou.bark() xiaogou.run() ##给小狗添加一些属性,比如小狗的颜色、重量 xiaogou.weight=5 xiaogou.color="red" ## 打印小狗的属性 print(xiaogou.weight) print(xiaogou.color)
能不能有函数去改变它的属性
能不能创建小狗的时候完成属性的初始化
def __init__(self):
self.weight = 5
self.color = ' 黄色'
[root@k8s-master python3-test]# python 9.py 5 red [root@k8s-master python3-test]# cat 9.py #! /usr/bin/python3 #encoding=utf-8 class Dog: def __init__(self): ##创建一个对象,默认做一些事情的时候 self.weight=5 self.color='red' def bark(self): print("汪汪……") def run(self): print("the dog runs quickly") ##create a dog duixiang xiaogou = Dog() ##创建一个对象 print(xiaogou.weight) print(xiaogou.color)
一个类可以创建多个对象,并且给与不同的属性
[root@k8s-master python3-test]# python 9.py 5 red 6 green [root@k8s-master python3-test]# cat 9.py #! /usr/bin/python3 #encoding=utf-8 class Dog: def __init__(self,newWeight,newColor): self.weight=newWeight self.color=newColor def bark(self): print("汪汪……") def run(self): print("the dog runs quickly") ##create a dog duixiang xiaogou = Dog(5,'red') #创建了xiaogou这个对象,两个属性体重和颜色,传参给init上的newWeight,newColor print(xiaogou.weight) print(xiaogou.color) ###create dagou duixiang Dog()这是类 dagou=Dog(6,'green') #创建了dagou这个对象,两个属性体重和颜色,传参给init上的newWeight,newColor
print(dagou.weight)
print(dagou.color)
只要创建对象的时候,写参数了,init一定会被调用
self:自身
[root@k8s-master python3-test]# python 9.py name is xiaogou 5 red name is dagou 6 green [root@k8s-master python3-test]# cat 9.py #! /usr/bin/python3 #encoding=utf-8 class Dog: def __init__(self,newName,newWeight,newColor): ##写四个,不传self,只传剩下3个 self.weight=newWeight self.color=newColor self.name=newName def bark(self): print("汪汪……") def run(self): print("the dog runs quickly") def printName(self): ##这个方法(函数)可以调用类自身的属性 print("name is %s"%self.name) #name是dagou=Dog('dagou',6,'green') dagou传给init,这个self又调用init.name ##create a dog duixiang xiaogou = Dog('xiaogou',5,'red') xiaogou.printName() print(xiaogou.weight) print(xiaogou.color) ###create dagou duixiang dagou=Dog('dagou',6,'green') dagou.printName() print(dagou.weight) print(dagou.color)
xiaogou.printName()
def printName(self): 当xiaogou这个对象调用printName这个函数的时候,self就是指的xiaogou;当dagou调用这个方法的时候,self就是dagou
dagou.printName()