咱们先来看看这个代码python
class Computer:
screen = True
def start(self):
print('电脑正在开机中……')
my_computer = Computer()#实例化类
print(my_computer.screen)#打印类中的属性值
my_computer.start()#启动类中的方法
想要调用他语法是实例名.属性和实例名.方法web
因此说最后咱们打印出的内容是svg
True
电脑正在开机中……
来看看怎么才能使用类中的值:函数
my_computer.screen
实例名.属性
这样就能够调用类中的属性了spa
my_computer.start()
实例名.方法
这样就能够启动类中的函数code
看到这里不少人也明白怎么使用类了,但是发现类中函数有一个self参数这个参数有什么做用呢?
接下来咱们看xml
class Chinese:
name = '小张' # 类属性name
def say(self, someone): # 带有两个参数的方法
print(someone + '是中国人')
person = Chinese()
print(person.name)
person.say('小张')
输出的结果是:对象
小张
小张是中国人
self调用时要忽略,'小张’传给参数someone
为何忽略self,由于self会接收实例化过程当中传入的数据,当实例对象建立后,实例便会代替 self,self 是全部实例的替身,“替身”是什么意思呢?就如上面这个代码同样,传参直接给了someone没有给self,由于他被忽略了,可是他是存在的,由于没有他,函数就不是实例化中的函数,因此你们只要记得在类中函数添加上self就好了。token
self总结,self就是实例化类的意思,传参时能够忽略。文档
咱们接着走,细心的同窗会发现,咱们传的参数小张给someone,而后再打印出 小张是中国人,其实咱们不必这么麻烦,直接看类的属性中有小张的参数值,直接调用就行了
而后大家就会想到
class Chinese:
name = '小张' # 类属性name
def say(self): # 带有两个参数的方法
print(name + '是中国人')
person = Chinese()
print(person.name)
person.say()
打印出来的结果
Traceback (most recent call last):
File "one.py", line 10, in
person.say()
File "one.py", line 6, in say
print(name + '是中国人')
NameError: name 'name' is not defined
报错找到不到name,为何呢?我上面不是写了嘛?由于类里面调用属性须要先加实例化,那是否是写Chinese().name是的,这样写没有错,可是咱们不必这样写呢,咱们上面说过self就是类的实例化,因此咱们写成self.name 就能够调用属性了,
小总结:类的属性调用前面加self.属性名就能够了。self在类中就是Chinese(),咱们彻底能够把所有的self写成Chinese(),有的人类的名字很长,写代码时很不有好因此出现了self,带代替的他的存在,传参时也不会传给他。
有同窗又问,若是类里面有两个方法(函数)这么办?我下一个方法(函数)要调用上一个方法(函数)这么调用,同理看下面的代码
class Chinese:
def greeting(self):
print('很高兴碰见你')
def say(self):
self.greeting()
print('我来自中国')
person = Chinese()
# 建立实例person
person.say()
# 调用say()方法
咱们只要在前面加上一个self(实例)就能够了。你们能够复制代码到编译器看看。
综上,因此咱们说self表明的是类的实例自己,方便数据的流转。对此,咱们须要记住两点:
第一点:只要在类中用def建立方法时,就必须把第一个参数位置留给 self,并在调用方法时忽略它(不用给self传参)。
第二点:当在类的方法内部想调用类属性或其余方法时,就要采用self.属性名或self.方法名的格式。
接下来咱们说说类中的初始化
定义初始化方法的格式是def init(self),是由init加左右两边的【双】下划线组成( initialize “初始化”的缩写)。
初始化方法的做用在于:实例对象建立时,该方法内的代码无须调用就会自动运行。
咱们看下面的代码
class Chinese:
def __init__(self):
print('很高兴碰见你,我是初始化方法')
person = Chinese()
运行出来的结果
很高兴碰见你,我是初始化方法
少了一个调用的函数 person.__ init __()
为何呢?由于他时初始化,只要类的实例化建立出来就会自动运行,比如方说,你打开电脑,他会自动加载C盘上的系统文件,直到你打开电脑桌面为止,剩下的才是你操做的内容,前面打开电脑的过程都叫作类的初始化,自动运行了。
这时候有同窗问,那我再初始化写一些代码赋值给函数,能调用吗?
在初始化中全部代码都是能够调用的,同理,在前面加一个self看下面的例子
class Chinese:
def __init__ (self):
self.mouth = 1 # self.不能丢
self.eye = 2
def body(self):
print('我有%s张嘴巴' % self.mouth)
print('我有%s只眼睛' % self.eye)
person = Chinese()
person.body()
运行出来的结果就是
我有1张嘴巴
我有2只眼睛
这样你们应该也明白怎么建立类,怎么使用类的函数,怎么调用类的函数了把,你们还有什么不懂的问题能够方便留言在下方,我会更新文档内容。喜欢的方便加关注点赞,感谢啦。