Python面向对象扫盲
'''面向对象扫盲'''

#class info: #经典类的定义
class QiongB(object): #新式类的定义,object是基类,所有类继承object类

    nation = 'zh' #类变量,相比实例变量,在实例化对象的过程中不需要开辟额外的内存。在大批量调用相同变量的时候类变量会更加高效。

    def __init__(self,name,age,job,salary): #__init__为构造函数,对象首先要调用__init__,self是每个方法都会带的参数,哪个对象调用这个方法,self就代表哪个对象。
        self.Name = name #实例变量。如果实例化的对象变量名是P1,就等价于P1.name = name。如果实例变量和类变量同名,对象首先调用实例变量,再调用类变量。
        self.Age = age
        self.Job = job
        self.Salary = salary
        self.__Alias = '穷B' #__xxx的方法或变量为私有属性,只能在的类的内部调用,在类外无法访问

    def print_info(self):
        info = '''
        name : %s
        age : %d
        job : %s
        salary : %d
        nation : %s
        alias : %s
        ''' %(self.Name,self.Age,self.Job,self.Salary,self.nation,self.__Alias)
        print(info)



    def __del__(self): #__del__为析构函数,在对象被释放的时候进行一些收尾工作,例如关闭网络连接、数据库连接、文件等。不需要参数。
        print('%s 穷挂了'% self.Name)


# P1 = QiongB('yufo',24,'IT',3000)
# #P1.__alias #调用私有属性会报错
# P1.print_info() #可以正常打印私有属性__alias,在程序退出后对象释放,调用析构函数__del__
#
# class XiaoQiongB(QiongB): #定义QiongB的子类,类的继承。子类XiaoQiongB会继承父类的所有方法。
#     def __init__(self,name,age,job,salary):
#         super(XiaoQiongB, self).__init__(name,age,job,salary) #继承父类构造方法的变量
#         self.Status = '也很穷' #新增自己构造方法的变量
#     def print_info(self): #子类的方法和父类重名的话会改写父类的方法
#         print('穷B %s 虽然很穷但是好在苟住了\n'%self.Name)
#         print('但是他' + self.Status)
#
# P3 = XiaoQiongB('yufo2',22,'IT',2900)
# P3.print_info()

#P2 = XiaoQiongB('yufo2',22,'IT',2900) #调用了父类的__init__
#P2.print_info() #调用了子类重写的方法,释放对象后调用了父类的__del__

class Makefriends(object):
    def Makefriends(self,name,Tuhao):
        print('穷B %s 和土豪 %s 成为了朋友\n'%(name,Tuhao))

class XiaoQiongB(QiongB,Makefriends): #多重继承,实例化的时候广度优先匹配第一个__init__
    def __init__(self,name,age,job,salary):
        super(XiaoQiongB, self).__init__(name,age,job,salary) #继承父类构造方法的变量
        self.Status = '也很穷' #新增自己构造方法的变量
    def print_info(self): #子类的方法和父类重名的话会改写父类的方法
        print('穷B %s 虽然很穷但是好在苟住了\n'%self.Name)
        print('但是他' + self.Status)

Tuhao1 = '富豪萝莉'
QiongB1 = XiaoQiongB('yufo3',22,'IT','2900')
QiongB1.Makefriends('Yufo3',Tuhao1)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇