面向对象基础
2019-12-30 23:32
579 查看
面向对象
'''
#类 class bar: def foo(self,arg): print(self.name,self.age,self.gender,arg) z = bar() #封装公有部分到内存里 z.name = 'hao' z.age = 11 z.gender = '男' z.foo(666) z1 = bar() z.name = 'xue' z.age= 18 z.gender = '女' z.foo('hahaha') ''' ''' class bar: def __init__(self,name,age): self.name = name self.age = age def show(self): print('%s:%s' %(self.name,self.age)) z = bar('hao',11) z.show() z1 =bar('haha',33) z1.show() #输出结果: hao:11 haha:33 '''
#继承 class F: def f1(self): print('F.f1') def f2(self): print('F.f2') class s(F): def s1(self): print('s.s1') def f2(self): super(s,self).f2() #执行父类(基类)中的方法 print('s.f2') h = s() h.s1() h.f1() #输出结果: s.s1 F.f1 h.f2() #结果 F.f2 s.f2
# class foo: # def __init__(self): # self.name = "a" # # def bar(self): # print('bar') # # @property # def per(self): # return 1 # @per.setter # def per(self,var): # print(var) # # obj = foo() # # r = obj.per # # print(r) # # obj.per = 123 class pagenation: def __init__(self,current_page): try: p = int(current_page) except enumerate as e: p = 1 self.page = p @property def start(self): val = (self.page -1) * 10 return val @property def end(self): val = self.page * 10 return val li = [] for i in range(100000): li.append(i) while True: p = input('请输入你的页码:') obj = pagenation(p) print(li[obj.start:obj.end])
输出结果
成员修饰符
'''
class F: def __init__(self): self.ag =12 self.__ag = 34 class S(F): def __init__(self,name): self.name = name self.__age =18 super(S,self).__init__() def show(self): print(self.name) print(self.__age) #间接调用私有字段 print(self.ag) # print(self.__ag) #无法继承父类的私有字段 obj = S('hao') obj.show() ''' ''' class Foo: def __init__(self): print('hah') def __call__(self, *args, **kwargs): print('123') def __int__(self): return 111 def __str__(self): return 'hao' Foo()() #调用__call__方法 a = int(Foo()) #调用__int__方法 print(a) b = str(Foo()) #调用__str__方法 print(b) ''' # class Foo: # def __init__(self,name,age): # self.name = name # self.age = age # self.n = 123 # obj = Foo('hao',18) # # r = obj.__dict__ #结果:{'name': 'hao', 'age': 18, 'n': 123} # print(r) ''' class Foo: def __init__(self,name,age): self.name = name self.age = age self.n = 123 def __getitem__(self, item): return item+10 def __setitem__(self, key, value): print(key,value) def __delitem__(self, key): print(key) obj = Foo('hao',18) r = obj[8] #r=item print(r) #调用__getitem方法,结果:18 obj[10]=888 #调用__setitem方法,结果:10,888 del obj[999] #调用__delitem方法,结果:999 ''' # class Foo: # # def __iter__(self): # # return iter([11,22,33,44]) # obj = Foo() # # for i in obj: # print(i) #输出结果 # 11 # 22 # 33 # 44
相关文章推荐
- java基础之面向对象
- Java 面向对象基础定义
- php面向对象基础概念(多态)
- 黑马程序员——学习日记5 java面向对象基础
- 面向对象基础
- 学习笔记-11.25--面向对象基础
- JAVA语言基础:数组 | 方法的递归 | 面向对象
- 面向对象基础
- 面向对象基础
- .NET 面向对象基础
- 学习笔记(一)——java基础-面向对象
- 巩固JAVA面向对象基础应用 -- 实现小巧的数据库1
- 面向对象基础及特性体现的优势
- c#面向对象基础。
- JavaScript面向对象基础语法总结
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- 《Java编程思想》学习笔记1—面向对象和JVM基础
- c++面向对象基础学习自我总结
- 面向对象基础
- 面向对象基础