1.基础知识
①定义类,使用关键字class,形式如下:
#使用关键字class来定义类,格式如下
class myClass:
def myFunction(self):
print('This is my first class!',end='\n')
def myFunction1(self):
print('Hello, my class!',end='\n')
②可以通过声明类对象来调用类中的公有方法
#声明类对象
my=myClass()
#调用类函数
my.myFunction()
my.myFunction1()
#判断my是否为类对象,返回True或者False
print(isinstance(my,myClass),end='\n')
输出结果如下:
This is my first class!
Hello, my class!
True
③pass占位,在没有对类进行功能划分时使用
class myClass1:
pass
④self(可以通过初始化修改self变量名)参数,是类方法必须带有的参数,必须放在首参数位置
class myClass2:
money=100 #类属性(类作用域中的全局变量)
#data=0
def __init__(myclass,a): #类的构造函数,初始化类对象时调用
myclass.a=a
def myFunction3(myclass,b):
print(myclass.a+b,end=' ')
print('money:',myclass.money,end='\n')
def __call__(myclass, c):
print(myclass.a*c,end='\n')
def myFunction4(myclass,d):
myclass.data=d
print(myclass.money,myclass.data,end='\n')
#初始化类对象
my1=myClass2(5)
#调用类函数
my1.myFunction3(5)
#调用__call__()函数
my1(5)
#修改类中属性
my1.money=1000
my1.myFunction3(6)
#增加类属性
my1.name="myClass2"
print(my1.name,end='\n')
#增加对象的成员
my1.myFunction4('hello')
输出结果如下:
10 money: 100
25
11 money: 1000
myClass2
1000 hello
2.方法指与特定实例绑定的函数,通过对象调用方法时,对象本真作为第一个参数传递过去,普通函数不具备这个特性
my2=myClass1()
def test(self,m):
self.value=m
my2.test=test
print(my2.test,end='\n')
print(my2.test(my2,2),my2.value,end='\n')
输出结果如下:
<function test at 0x000001E57E1AC168>
None 2
3.在IDE中,通过在对象或类名后加’.‘可以查看其所有公有成员;加’._'会列出该对象或类的所有成员,包括私有成员;
私有属性:使用__两个下划线(中间无空组合)开头则为私有属性
class myClass4:
def __init__(self):
self.m=10
#m=10 #公有属性
_m=100 #保护属性
__m__=1000 #系统定义的特殊成员
__m=10000 #类中私有成员,只能内部访问或者在外部使用特殊函数
def myFunction(self): #类方法
return self.__m
#print(self.__m,end='\n')
#print(self._m,end='\n')
def staticFunction(): #静态方法
print(myClass4.m)
def __myFuction(self):
print(self.myFunction()) #私有函数
def myFunction5(self):
return self.__myFuction() #内部函数访问私有函数
调用类:
my3=myClass4()
print('打印公有属性',my3.m,end='\n')
print('打印私有成员(外部访问)',my3._myClass4__m,end='\n')
print('使用内部函数访问私有成员',my3.myFunction(),end='\n')
print('通过内部访问私有函数',my3.myFunction5(),end='\n')
print('通过类名访问方法',myClass4.myFunction(my3),end='\n')
输出结果:
打印公有属性 10
打印私有成员(外部访问) 10000
使用内部函数访问私有成员 10000
10000
通过内部访问私有函数 None
通过类名访问方法 10000
学习笔记:
1关于类的定义和使用,使用关键字class(空格)(类名):的格式定义,类可以有初始化函数__init__()也可由不使用;
2.可以通过isinstance()函数判断对象实例化关系;
3.通过pass占位符可以使得调用没有方法的类也可以被实例化:
#pass占位,在没有对类进行功能划分是使用
class myClass1:
pass
myc=myClass1()
print(myc,end='\n')
输出结果:
<__main__.myClass1 object at 0x000002BE48EBA0C8>
4.对于类中的方法的首个参函名在初始化使用时可以被修改:
def __init__(myclass,a): #类的构造函数,初始化类对象时调用
myclass.a=a
5.方法指与特定实例绑定的函数,通过对象调用方法时,对象本真作为第一个参数传递过去,普通函数不具备这个特性;
6.在IDE中,通过在对象或类名后加’.‘可以查看其所有公有成员;加’._'会列出该对象或类的所有成员,包括私有成员。私有属性:使用__两个下划线(中间无空组合)开头则为私有属性。
如果有不会的,可以留言,大家一起学习交流!