@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法。给大家供大家参考,具体如下: 在类中声明的变量我们称之为类变量[静态成员变量], 在init()函数中声明的变量并且绑定在实例上的变量我们称之为成员变量。 类变量直接可以通过类名来调用。 使用对象来调用的时候,获取的结果是成员变量的值, 使用类名来调用,获取的是类变量的值。 使用对象来调用的时候,它首先寻找成员变量, 如果成员变量不存在。则去寻找类变量。 使用类名来调用,则会报错 总结: 类变量通过类名或者对象来调用都不会报错,但是成员变量只能通过对象来调用。 通过对象来修改类属性的时候,只能作用到对象自己本身,作用不到类, 若是通过类名来修改类属性,则只对类变量的值进行修改。 输出: 类方法,成员方法 类方法:使用类名来调用的方法 成员方法:使用对象来调用的方法 若一个方法定义在类中,但是没有参数[一般默认self],此时我们只能通过类名来调用 若我们需要使用到一个类的对象,首先要实例化。 输出: 当调用此方法时,不会将类的实例传递给它。 在类中定义的函数。 无需实例化类,就可以调用。它的定义在继承中,是不可变的。 当调用此方法时,将函数所属的类作为第一个参数传递。 输出: 下划线定义特殊的方法,一般情况下是系统定义名字, init()、del() 前双下划线(age):表示私有类型的变量(privated),只能在本类中进行访问,外界不能直接访问。如__age. 单下划线(_age):以单下划线开头的表示保护类型变量(protected), 保护类型的变量只允许本身以及子类访问,不能用于from module import * [使用单下划线开头的时候,虽然变量能够直接被访问,但是请把变量视为一个保护类型的变量,尽量不要去访问。 非常感谢你的阅读 没办法的事,只能后天弥补,于是在编码之外开启了自己的逆袭之路,不断的学习python核心知识,深 入的研习计算机基础知识,整理好了,我放在我们的微信公众号《程序员学府》,如果你也不甘平庸, 那就与我一起在编码之外,不断成长吧! 其实这里不仅有技术,更有那些技术之外的东西,比如,如何 做一个精致的程序员,而不是“屌丝”,程序员本身就是高贵的一种存在啊,难道不是吗?点击加入文章目录
类变量与成员变量
1、若类变量与成员同时存在并且同名
2、若类变量存在,成员变量不存在,
3、若类变量不存在,成员变量存在:
class Person(object): # 类变量 name = "haha" age = "19" height = 170 def __init__(self,name,age,weight): # 成员变量 self.name = name self.age = age self.weight = weight def sayHeight(self): print(self.height) per = Person("xiaoming",19,50) print(per.name) print(Person.name) # print(Person.weight) per.height = 190 print(per.height) print(Person.height) print('*********') Person.height = 200 print(Person.height) print(per.height) per.sayHeight()
xiaoming haha 190 170 ********* 200 190 190
类方法与成员方法
class Person(object): def __init__(self,name,age): self.name = name self.age = age def say(self): print("I am %s, I am %d year old"%(self.name,self.age)) def sayHello(): print('hello I am class function') per = Person("xiaoming",19) per.say() Person.sayHello()
I am xiaoming, I am 19 year old hello I am class function
类方法与静态方法
静态方法:
类方法:
class A(object): def foo(self, x): print("executing foo(%s, %s)" % (self, x)) @classmethod def class_foo(cls, x): print("executing class_foo(%s, %s)" % (cls, x)) @staticmethod def static_foo(x): print("executing static_foo(%s)" % x) a = A() # 调用foo函数,参数传入1 a.foo(1) # 调用class_foo,参数传入1 A.class_foo(1) # 调用static_foo,参数传入1 A.static_foo(1) a.static_foo(1):
executing foo(<__main__.A object at 0x0000024F126489B0>, 1) executing class_foo(<class '__main__.A'>, 1) executing static_foo(1) executing static_foo(1)
下划线
如:
大学的时候选择了自学python,工作了发现吃了计算机基础不好的亏,学历不行这是
想做你自己想成为高尚人,加油!
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算