python类的类方法可以用对象和类名来调用,python中用哪个函数来获取对象的类型-

  python类的类方法可以用对象和类名来调用,python中用哪个函数来获取对象的类型?

  面向对象编程语言-类:一个模板,(人)-是一个抽象的,非实物的对象-object:(例如:风中的自行车,zxdzt)-attribute:(表示这类东西的特征,眼睛,嘴巴,鼻子)-method:(表示这类物体能做什么,例如:)Learning) 1)。定义class: class:来自集合的类导入Counter示例:str,list,dict,Counter对象表示是,哪个类是人类继承的。如果不知道继承哪个类,就写object类(对象):# print(hello) #构造方法(魔术方法)。创建对象时,函数def _ _ init _ _ (self,name,age,gender): # Python解释器自动将对象传递给参数self。#看看什么是自我?#将对象与其属性绑定。#调用对象的属性有两种方式:#-风中的自行车. name #-self . name self . name=name # property self . age=age # property self . gender=gender # property print(self)#本质上是一个对象,__main__。人类对象0x7f4fdc4864a8 #方法(在类中定义的函数,称为)def eat(self): print(%s正在吃.%(self.name))创建对象===根据模板(类)创建对象(真实存在)风中自行车=人(风中自行车,10,男性)打印(风中自行车风中自行车)查看对象打印的属性(风中自行车。名称)打印(风中的自行车。年龄)打印(风中的自行车。性别)让对象执行方法bike in the wind。吃()

  实践和应用练习1与班级掌握。创造一类人。所有权的方法是砍柴,娶媳妇,回家;实例化对象并执行相应的方法如下图:pcdhn,18岁,男,开车娶媳妇,学校四号,22岁,男,上山砍柴,唐浩,10岁,女,辍学回家。温馨提示:属性:姓名、年龄、性别方法:goHome()、kanChai()、quXiFu()类人(object): def __init__(self,姓名、年龄、性别):self . name=name self.age=age self . gender=gender def家辉(self): print(%s,%d,%s,退学回家 %(self.name,self . age,self .性别))Def曲希福(自我):打印( %s,% d,% s,开车去讨老婆 %(自我。名字,自我。年龄,自我。性别))def kanchai(自我):打印((%s,% d,% s,上山砍柴 %(自我。名字,自我。年龄,自我。性别))老李=人( PC DHN ,18,男)张三=男)李四=人(唐昊,10,女)老李.曲希福()张山.阚钗()李四.惠嘉()

  类的私有属性和私有方法类的私有属性:__private_attrs:以两个下划线开头,声明该属性是私有的,不能在类外使用或直接访问。自我。__private_attrs在类内的方法中使用时。类的方法:在类中,使用def关键字定义一个方法。与一般的函数定义不同,类方法必须包含参数self,self是第一个参数,self表示类的实例。self的名字没有规定死(因为是形参),这个也可以用,但是按照约定用self比较好。类的私有方法__private_method:以两个下划线开头,声明该方法是私有的,只能在类内部调用,不能在类外部调用。自我。_ _私有_方法.类人(对象):def __init__(自己,姓名,年龄,性别,金钱):自己。name=name self . age=age self . gender=gender self。_ _ money=money def _ _ play(self):print(王者荣耀进行中)P1=people (user1 ,10, male ,100000) print(

  栈数据结构的封装应用练习2:栈的数据结构类别堆栈:栈的方法:入栈(推),出栈(pop),栈顶元素(上),栈的长度(长度),判断栈是否为空(isempty)显示栈元素(视图)操作结果:栈类的实例化入栈2次出栈一次显示最终栈元素类堆栈(对象):#构造函数def _ _ init _ _(self):self。stack=[]def push(self,value): :参数值:入栈元素:返回:“”自身。堆栈。追加(值)返回真实定义弹出(自身):#判断栈是否为空if self.stack: #获取出栈元素,并返回item=self.stack.pop()返回其他项目:返回False def top(self): if self.stack:返回self.stack[-1] else:返回假定义长度(自身):返回len(self.stack) def isempty(self):返回self.stack==[] def view(self):返回,。加入(自我。Stack)s=Stack()s . push( 1 )s . push( 2 )s . push( 3 )s . push( 4 )print(s . top())print(s . length())print(s . isempty())s . pop()print(s . view())

  队列数据结构的封装类别队列(对象):#构造函数def _ _ init _ _(self):self。队列=[]def push(self,value):self。排队。append(value)返回True def pop(self):if self。队列:del self。queue[-1]else:返回False def front(self):if self。队列:回归自我。队列:回归自我。queue[-1]else:返回False def len len len。queue)def isempty(self):返回self。queue==[]def view(self):return join(self。Queue)s=Queue()s . push( 1 )s . push( 2 )s . push( 3 )s . push( 4 )print(s . front())print(s . rear())print(s . length())print(s . isempty())s . pop()print(s . view())

  第二个特性之继承概念: - 父类与子类/基类和派生类从超正析象管导入text low wrapper

  类动物(object):def _ _ init _ _(self,name,age):self。name=name self。age=age def eat(self):print(吃……)类狗(动物):#当狗没有构造方法时,执行动物里面的构造方法def __init__(自我,姓名,年龄,力量):#自我。name=name # self。年龄=年龄#执行狗的父类的构造方法;超级(狗,自己)。__init__(姓名,年龄)自我。power=power def eat(self):print(self。动力)超级(狗,自我)。吃()# 1。如果子类没有的属性和方法,则去父类找,如果父类也没有,就报错d1=狗(大黄,3100)打印(D1。姓名)打印(D1。年龄)打印(D1。权力)D1。吃()

  多继承原理#编码:utf-8#经典类# class person 1:# pass # P1=person 1()# print(P1)# #新式类# class Person2(对象):# pass# p2=Person2()# print(p2) #在python2中既有新式类也有经典类;### 经典类的继承算法:深度优先算法# 新式类的继承算法:广度优先算法# python3全部都是新式类;D类:def测试(自我):打印( D测试)C类(D):通过定义测试(自我):打印( C测试)B类(D):传递定义测试(自己):# print(B测试)A类(B,C):传递# def测试(自我):# print(A测试a=A()a.test()

  三,多态性#子类和父类存在相同方法时,子类会覆盖父类方法#运形时总会调用子类方法-多态class Animal(object):def run(self):print( running . )def哭(自己):打印(’哭泣.)类狗(动物):定义运行(自身):打印(狗跑. ))def eat(self): print(吃狗.)类猫(动物):定义运行(自身):打印(猫跑. ))猫=猫()猫。跑()狗=狗()狗。跑()

  图书管理系统# 假设每本书只有一本class Book(object):def _ _ init _ _(self,name,author,state,Book index):self。name=name self。author=author # 0:已借出 1:未借出self.state=陈述自我。Book index=Book index def _ _ str _ _(self):return Book(% s,% d)%(self . name,self。状态)类BookManage(对象):#存放所有书籍信息,列表里面存放的是书对象books=[] def start(self): 图书管理系统初始化数据 self.books.append(Book(python , axdds ,1, in 23445 ))self。书籍。append(Book( Java , axdds1 ,1, in 23445 ))self。书籍。append(Book( C , axdds2 ,1, IN23445)) print(初始化数据成功!)定义菜单(自身): 图书管理菜单栏为真时:打印(图书管理操作1).添加书籍2).删除数据3).查询书籍4).退出)选择=输入(请输入你的选择:)if choice== 1 :self。addbook()elif choice== 2 :self。del book()elif choice== 3 :self。借书()elif choice== 4 :exit()else:print(请输入正确的选择!)def addBook(self): print(添加书籍center(0, * name=input(书籍名称:)bObj=self。如果bObj:print(书籍%s已经存在%(bobj。名))else:自我。书籍。追加(图书(名称,输入(作者:),1,输入(存放位置:))))打印(书籍%s添加成功%(name)) def delBook(self): print(删除书籍中心(50, * )为自我中的我。书籍:打印(I)名称=输入(删除书籍名称:’)a=自我。如果a:self,书是否存在(名称)。书籍。删除(一个)打印(删除%s成功%(a)) else: print(书籍不存在)def borrowBook(self): print(查询书籍中心(50, * )为自我中的我。书籍:打印(I)名称=输入(查询书籍名称:)b=自我。书在自身中存在吗?books:if book==b:print(book)break else:print( % s不存在%(b)) break def isBookExist(self,name): 检测书籍是否存在 # 1.依次遍历列表书里面的每个元素# 2.如果有一个对象的书名和名字相等,那么存在;# 3.如果遍历所有内容,都没有发现书名与名字相同,书籍不存在;对于自助书籍中的图书:如果book.name==name: #因为后面需要返回book else:如果_ _ name _ _= _ _ main _ _ ,则返回false:b manger=BookManage()b manger。开始()b经理.菜单()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: