python面向对象的基础知识
admin
2023-01-21 04:20:48
0

面向对象 

#类
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])

输出结果
python面向对象的基础知识

成员修饰符
'''

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

相关内容

热门资讯

今年上半年全国城镇新增就业69... 今天(22日)上午,人力资源社会保障部举行新闻发布会。今年上半年,全国城镇新增就业695万人,同比持...
委内瑞拉强震遇难人数升至534... 当地时间21日,委内瑞拉全国代表大会主席豪尔赫·罗德里格斯通过社交媒体通报,该国6月24日两次强震造...
高考684分花3000元咨询进... 潮新闻客户端 青年特约评论员 曾耀湘图源:视觉中国近日,据齐鲁晚报报道,河北一名2018级考生,因“...
郑州2死2伤火灾系人为纵火 郑州市公安局金水分局对外发布案件通报。通报显示,6月19日21时,郑州市金水区宏明路与柳林路东南角宏...
29岁成都小伙旅行中改道广西救... 7月14日,自发赶往广西救灾的志愿者党鑫蕊,由于劳累过度导致心功能衰竭,在贵港市覃塘区不幸离世,年仅...
清理洗衣机下水管道的方法 清理洗衣机下水管道是一项必要的任务,如果不及时清理,管道内部容易积累污垢和细菌,从而影响洗衣机的使用...
澳外长宣称:中国要就军事建设做... 7月初,中国向太平洋公海海域成功发射一枚携载训练模拟弹头的潜射战略导弹。中方重申,此为例行军事训练活...
伊朗威胁打击海水淡化厂,到底有... 据路透社报道,伊朗7月21日对科威特一座海水淡化厂发动袭击,引发海湾地区担忧,随着该地区冲突升级,更...
美新版“空军一号”刚上岗就回炉... 【环球时报综合报道】美国《防务新闻》7月20日称,美国总统特朗普透露,新版总统专机“空军一号”将被送...
全自动卧式洗衣机清理方法 随着生活水平的不断提高,全自动卧式洗衣机已经成为了家庭生活中不可或缺的一部分。它的出现方便了我们日常...