定义类

类:

属性--数据

方法--函数

[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()
 

 

上一篇:从零开始搭建SpringCloud微服务框架(三)————Auth服务集成JWT


下一篇:用python3处理OJ数据输入