首页 > 编程语言 >Python——面向对象编程(十一)

Python——面向对象编程(十一)

时间:2023-03-22 10:14:16浏览次数:55  
标签:__ 十一 Python self face 面向对象编程 print girl def

1. 对象的封装

# coding=utf-8
# 对象的封装
# 类的概念
"""
类的名字:当名字由多个单词构成时,我们采用驼峰命名法
就是说多个单词,每个单词的首字母需要大写
这也是python的命名规则
"""
class BeautifulGirl():
    # 类的属性
    eye = ""
    nose = ""
    mouth = ""
    hair = ""
    face = ""

    # 构造函数
    def __init__(self,eye,nose,mouth,hair,face):
        self.eye = eye
        self.nose = nose
        self.mouth = mouth
        self.hair = hair
        self.face = face
        print ("构造函数运行了")
    # 在这就叫做类的方法
    def dance(self):
        print ("美女在跳舞")

    def get_beautiful_girl(self):
        print ("这个美女的样貌是:")
        print (self.nose)
        print (self.mouth)
        print (self.hair)
        print (self.face)
        print (self.eye)

# 实例化就是获取具体对象的一个过程 new新的一个。
girl = BeautifulGirl("大大的眼睛"
                     ,"小巧的嘴唇"
                     ,"乌黑亮丽的头发"
                     ,"清秀的脸庞")
girl.dance()
girl.get_beautiful_girl()

girl2 = BeautifulGirl("小小的眼睛",'鼻子','嘴','头发','脸庞')
girl2.get_beautiful_girl()

print打印结果:

大大的眼睛
小巧的嘴唇
乌黑亮丽的头发
清秀的脸庞
小小的眼睛
这个美女的样貌是:
鼻子
嘴
头发
脸庞

2. 类的私有属性

# coding=utf-8
# 类的私有属性
class BeautifulGirl():
    # 类的属性
    eye = ""
    nose = ""
    mouth = ""
    hair = ""
    face = ""
    # 这就是私有属性,私有属性在类的外部是不可以访问的
    __name ="高圆圆"
    address = "河北省唐山市"
    # 构造函数
    def __init__(self,eye,nose,mouth,hair,face):
        self.eye = eye
        self.nose = nose
        self.mouth = mouth
        self.hair = hair
        self.face = face
        print ("构造函数运行了")
    # 在这就叫做类的方法
    def dance(self):
        print ("美女在跳舞")
    def __dd(self):
        print ("美女在跳舞")

    def get_beautiful_girl(self):
        print ("这个美女的样貌是:")

        print (self.__name)
        print (self.nose)
        print (self.mouth)
        print (self.hair)
        print (self.face)
        print (self.eye)
girl = BeautifulGirl("大大的眼睛"
                     ,"小巧的嘴唇"
                     ,"乌黑亮丽的头发"
                     ,"清秀的脸庞")
print (girl.mouth)
print (girl.address)
# print (girl.__name)
# # 类的私有属性可以访问吗?
# print (BeautifulGirl.__dict__)
# print (girl._beautiful__name)
girl.get_beautiful_girl()

print打印结果:

构造函数运行了
这个美女的样貌是:
高圆圆
大大的眼睛
小巧的鼻子
薄薄的嘴唇
乌黑亮丽的头发
清秀的脸庞

3. 类中的方法

# coding=utf-8
# 类的私有属性
class BeautifulGirl():
    # 类的属性
    eye = ""
    nose = ""
    mouth = ""
    hair = ""
    face = ""
    # 这就是私有属性,私有属性在类的外部是不可以访问的
    __name ="高圆圆"
    address = "河北省唐山市"
    # 构造函数,也叫构造方法
    def __init__(self,eye,nose,mouth,hair,face):
        self.eye = eye
        self.nose = nose
        self.mouth = mouth
        self.hair = hair
        self.face = face
        print ("构造函数运行了")
    # 在这就叫做类的方法
    def dance(self):
        print ("美女在跳舞")
    # 这个叫做私有方法
    def __dd(self):
        print ("美女在跳舞")
    # 这个叫做一般方法
    def get_beautiful_girl(self):
        print ("这个美女的样貌是:")

        print (self.__name)
        print (self.nose)
        print (self.mouth)
        print (self.hair)
        print (self.face)
        print (self.eye)
    # 静态方法
    # 静态方法不能够访问类中的属性
    @staticmethod
    def study():
        print ("美女在shixi")

    # 类方法
    # 类方法是不可以访问实例变量的,它可以访问类变量(类的属性
    @classmethod
    def girl_friend(cls):
        print (cls.__name)
        print (cls.address)
        print (cls.face)
girl = BeautifulGirl("大大的眼睛"
                     ,"小巧的嘴唇"
                     ,"乌黑亮丽的头发"
                     ,"清秀的脸庞")

# print (BeautifulGirl.__dict__)
# 这就访问了类中的私有方法
# girl.beautifulGirl__dd()

girl.study()
BeautifulGirl.study()

# 类名,一般方法的名称调用是会报错的
# BeautifulGirl.dance(girl)

girl.girl_friend()
BeautifulGirl.girl_friend()
girl.get_beautiful_girl()

print打印结果:

构造函数运行了
这个美女的样貌是:
高圆圆
河北省唐山市
高圆圆
河北省唐山市
大大的眼睛
小巧的鼻子
薄薄的嘴唇
乌黑亮丽的头发
清秀的脸庞

4. 类的继承

# coding=utf-8
# 类的继承
# 父类和子类
class Father(object):
    age = 38

    def __init__(self,name):
        self.name = name
        print ("父类的构造函数运行了")

    def father_money(self):
        print ("爸爸有很多钱")

    def __father_knowleger(self):
        print ("爸爸的知识体系")

    @staticmethod
    def study():
            print ("爸爸在学xi")

    @classmethod
    def father_friend(cls):
            print ("爸爸有很多朋友")

    def face(self):
            print ("爸爸非常帅")
# 意味着son这个类继承了father这个类
class Son(Father):
   def __init__(self):
       print ("子类的构造函数运行了")
# son = Son("小王")
son = Son()
# 在继承中,子类如果有构造函数,name就不会调用弗雷德构造函数

# 在继承中,一般的方法是可以被继承的
son.father_money()

# 私有方法可以被继承
# son.__father_knowleger()
son.study()
son.father_friend()

class Mother():
    def face(self):
        print ("妈妈长的很漂亮")

# 这就叫做多继承
class Son2(Mother,Father):
    def __init__(self):
        print("2儿子的构造函数运行了")

son2 = Son2()
son2.father_money()
son2.face()
# 当多继承的时候,多个父类拥有一个名称的变量或方法时
# 哪个父类写在继承列表的前边,子类就继承谁的

print打印结果:

子类的构造函数运行了
爸爸有很多钱
爸爸在学xi
爸爸有很多朋友
2儿子的构造函数运行了
爸爸有很多钱
妈妈长的很漂亮

5. 类的多态

# coding=utf-8
# 类的多态
# 指的是多种形态

class Animal():
    def run(self):
       print ("动物开始跑")
# 子类在继承父类的过程中,重写了父类中的方法
class Dog(Animal):
    def run(self):
        print ("狗狗跑")

class Cat(Animal):
    def run(self):
        print ("猫跑")

class Person(Animal):
    def run(self):
        print ("人类跑")

dog = Dog()
dog.run()

cat = Cat()
cat.run()

person = Person()
person.run()

# 多个类继承同一个类,都重写了父类的方法,呈现出了不同的形态

# 多态性
class A(Animal):
    pass
a = A()

def run(obj):
    obj.run()

run(dog)
run(cat)
run(person)
run(a)

print打印结果:

狗狗跑
猫跑
人类跑
狗狗跑
猫跑
人类跑
动物开始跑

6. 多进程编程

# coding=utf-8
# 多进程编程代码演示
import time
from multiprocessing import Process
import os

def target_function():
    print ("子进程的ID:{}".format(os.getpid()))
    time.sleep(2)
if __name__== "__main__":
    print (__name__)
    print ("主进程ID:{}".format(os.getpid()))
    ps = []
    for i in range(10):
        p = Process(target_function())
        p.start()
        ps.append(p)
    # 让主进程等待子进程进行运行完成后在停止
    for p in ps:
        p.join()

print打印结果:

__main__
主进程ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692
子进程的ID:2692

标签:__,十一,Python,self,face,面向对象编程,print,girl,def
From: https://www.cnblogs.com/kasia/p/17242563.html

相关文章

  • Python爬虫完整代码拿走就用
    对于新手做Python爬虫来说是有点难处的,前期练习的时候可以直接套用模板,这样省时省力还很方便。使用Python爬取某网站的相关数据,并保存到同目录下Excel。直接上代码:importre......
  • Python爬虫完整代码拿走就用
    对于新手做Python爬虫来说是有点难处的,前期练习的时候可以直接套用模板,这样省时省力还很方便。使用Python爬取某网站的相关数据,并保存到同目录下Excel。直接上代码:imp......
  • python 编写一个程序用lambda查找输入给定的字符串是否是以'a'开头 是返回True
    https://www.cnblogs.com/frazer-cxy-jsfx/这段代码可以双重输入,双重判断,data1=input('请输入一个字符串:')#data2=input('请输入一个字符串:')aed=lambdax:......
  • Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析|附代码数据
    全文下载链接:http://tecdat.cn/?p=17748最近我们被客户要求撰写关于销售量时间序列的研究报告,包括一些图形和统计输出在本文中,在数据科学学习之旅中,我经常处理日常工作中......
  • biopython Bio.Alphabet
    参考:https://biopython.org/wiki/Alphabet作用:1.记录序列的分子类型(DNA,RNA或蛋白质),2.在序列、alignment、motif等中声明预期的字符。在Biopython1.78及以后的版......
  • 便签_Python
    模糊合并中的笔记process.extractOne(query="中国平安",choices=["中国平安"],scorer=fuzz.token_set_ratio,score_cutoff=0)pr......
  • # yyds干货盘点 # 怎么用Python把左边这种转成右边这种?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【惜君】问了一个​​Pandas​​处理Excel的问题,这里拿出来给大家分享下。下面是粉丝自己写的代码:二、实现过程看上去是......
  • Python 异步: 非阻塞流(20)
    动动发财的小手,点个赞吧!asyncio的一个主要好处是能够使用非阻塞流。1.异步流Asyncio提供非阻塞I/O套接字编程。这是通过流提供的。可以打开提供对流写入器和流写......
  • Python3中zipfile模块文件名乱码问题
    在zipfile.ZipFile中获得的filename有中日文则很大可能是乱码,这是因为在zip标准中,对文件名的encoding用的不是unicode,而可能是各种软件根据系统的默认字符集来采用(此......
  • Codon是一个高性能的Python编译器
    Codon是一个高性能的Python编译器,可以将Python代码编译成本地机器代码,没有任何运行时开销。与Python相比,单线程的典型加速比在10-100倍以上。Codon的性能通常与C/C++相......