小白整理知识点:
1. 类内变量:public可访问,private(__双下划线)不可访问
2. 类内函数:def语句,分有参、无参两种,而且要注意参数不能是self.x格式的
3. 变量的调用:类内公共变量可直接访问(如x.a),还可以用于其他def函数中,但是调用时要加前缀self
4. 外部传入参数的调用:同3,可直接访问(如x.x1),可以用于其他def函数中,调用时要加前缀self
5.类的实例化:分无参和有参,前者load(),后者load(1,2,3)
class load():
a = 1
b = 100
__abc = 2 #不可访问
def __init__(self, x1, x2, x3): # 类的外部参数,注意__前后均有,这里错了会导致实例化报错
self.x1 = x1
self.x2 = x2
self.x3 = x3
def pr(self): # 没有参数
print('hello')
def myadd(self, k): # 带参数,但是这个参数不能为self.x这类
return k + self.a # 接上行,self.x可以出现在函数内部,类内全局变量调用需加前缀self
def myfun(self, x):
out1 = x + self.x1 # 类外传入参数的调用同类内全局变量的调用,前缀加self
return out1
def myfun2(self, x):
out2 = self.myfun(x) # 类内函数调用,既非调用myfun(),也不是load.myfun(),而是加前缀
return out2 # self.myfun()调用,和变量调用是相同的模式
x = load(1, 2, 3) # 带参数的实例化
print(x.a)
print(x.myadd(111)) # 注意不要写成load.myadd(),因为没注意导致报错了
print(x.myfun(9))
print(x.myfun2(100)) # 函数调用
6. 跨文件的调用
# 保存在classTest.py
class load8760():
a = 1
b = 100
__abc = 2
def __init__(self, x1, x2, x3):
self.x1 = x1
self.x2 = x2
self.x3 = x3
def pr(self):
print('hello')
def myadd(self, k):
return k + self.a
def myfun(self, x):
out1 = x + self.x1
return out1
def myfun2(self, x):
out2 = self.myfun(x)
return out2
调用示范:
# 保存在classMain.py文件中
import classTest
t = classTest.load8760(10, 11, 12) # 注意实例化的同时要传入参数
t.pr() # 不带参数的函数调用
print(t.myfun(2)) # 带参数的函数调用
7. 几点容易出错的点:
(1) __init__后面的双下划线不要忘记,否则会一直报错
(2)带参数的类,在实例化的时候,记得同时传入参数,否则报错,缺少参数
(3)写成类的时候,调用外部变量和def函数都要加self.xx