PYTHON's Fantasy Adventure 21:ゲストオフィサーを離れないでください。誰かを紹介します。

PYTHON's Fantasy Adventure 21:ゲストオフィサーを離れないでください。誰かを紹介します。

PYTHONの言語の本質はここにあります!ゲストオフィサー、行かないで、10分、PYTHONを学ぼう!
レッスン21は客観的です、行かないでください、私はあなたに
芸術ではなく、生命ではなく、オブジェクトを紹介します


1日10分、PYTHONに恋をしましょう!


序文

前回のレッスンで学んだことを通して、オブジェクト指向の予備的な理解を得ました。今度は、小さな例を適用して理解を深めます。

一、私は誰ですか?

コードは次のとおりで、非常に単純です。

class LONG_ZHI_ZI:

    def __init__(self,nationality,region):
        self.nationality = nationality
        self.region = region
        print('个人信息正在录入中……')

    def born(self):
        print('龙之子生在%s。'%(self.nationality))

    def live(self):
        print('龙之子在%s。'%(self.region))
    
    # 接下来新建方法,调用上面的两个方法(注:方法名可自定义)。
    def life(self):
        self.born()
        self.live()

tommi_wei = LONG_ZHI_ZI('CHINA', 'NANJING')

tommi_wei.life()
# 调用方法后,程序运行方法中的代码(即依次调用方法`born`和`live`)。
tommi_wei.born()
tommi_wei.live()

興味があれば、自分でコードを実行できます!結果があなたが思っているのと同じかどうか見てください!

これは皆のための単なる前菜です、次のプログラムはもっと面白いです!
今度はロボットT800を作ります。彼がファンタジーアドベンチャーに参加してくれることを願っています〜

class T_800:
    def __init__(self):
        self.robot_name = input('MASTER你好。我来自另一个星球,你能告诉我叫什么名字?')
        self.master = input('我叫小鹏鹏,你可以叫我任何你想叫的名字')
        print('你好%s,我叫%s。很开心,遇见你~'%(self.master,self.robot_name))
    
    def say_wish(self):
        wish = input('说说你让我来地球的目的吧:')
        print(self.master+'的目的是:')
        # 这里也可以用字符串的格式化,不过,用循环语句的话,之后改复述次数会方便些。
        for i in range(3):
            print(wish)

Arnold_Schwarzenegger = T_800()
Arnold_Schwarzenegger.say_wish()

操作の結果は次のとおりです。

MASTER你好。我来自另一个星球,你能告诉我叫什么名字?terminator                
我叫小鹏鹏,你可以叫我任何你想叫的名字Tommi_Wei
你好Tommi_Wei,我叫terminator。很开心,遇见你~
说说你让我来地球的目的吧:PYTHON World, i am back!  
Tommi_Wei的目的是:
PYTHON奇 World, i am back!
PYTHON奇 World, i am back!
PYTHON奇 World, i am back!

第二に、クラスの継承とカスタマイズ

1.家業を継承しますか?

ダース以上のスイート、50エーカー以上の土地、そしていくつかの炭鉱を継承する以外に、他に何がありますか?ほかに何か?だから、あなたは成功するしかないのです!
さて、ビジネスに戻りましょう。相続とは何かについて話しましょう。これは家族の財産を相続するものではありません。ハハ。
あなたの外国人の友人があなたに台湾人と中国人の関係は何であるかを尋ねたら?どのように答えますか?
Xiaopengpengは、台湾は中国の領土の不可分の一部であると言うでしょう。そこで生まれた人は台湾人と呼ばれ、北京で生まれた人は北京人と呼ばれます。しかし、最終的な分析では、それらはすべて中国人です!
正しい!これが継承です。この文を理解すれば、継承を学ぶことができます。誰もが箸で食べ、誰もが中国語を話します、待ってください、これらは中国人の属性です!

この概念をより明確に理解できるようにするために、Xiaopengpengも今日戦っています!
台湾人は中国人に属しており、中国人の概念が台湾人を包み込んでいることを示しています。台湾人が持っている特徴は中国人も持っています!PYTHONの世界では、中国人の属性と方法を継承しているのは台湾人です。結局のところ、台湾人はサブセットにすぎず、北京、天津、湖南などからの人々がいます。
今のクラスの言葉では、つまり、台湾人がサブクラスであり、中国人が親です。

2.カスタム服?

これはあなた自身のために服をカスタマイズするためにモールに行きますか?ははは、心配しないで、勉強を続けましょう!

台湾人は中国人と同じ黒髪と黄色い肌の属性を持っているので、彼らは中国語を話す同じ方法を持っています。もちろん、台湾人も独自の特産品である台湾パイナップルを持っています。(本土にそれがないと仮定して)これは私達がカスタマイズと呼ぶものです。
上記の概念を理解したら、コードを書いて、それをどのように書くかを考えることができますか?

第三に、クラスの継承コードの実装

1.基本的な文法

継承された文法形式を最初にみんなに感じてもらいましょう!

class A(B):

ここで、Aは子クラスの名前、Bは親クラスの名前です。誰もが中国語の形式を使用する必要があることに注意してください!言うまでもありませんが、コードを直接見てみましょう!

class Chinese:
    eye = 'black'
    speak = 'zhong_guo_hua'

    def eat(self):
        print('吃饭,选择用筷子。')

class Taiwanren():
    pass # pass表示'跳过',不执行其他操作

JAY=Chinese()
print(JAY.speak)
JAY.eat()

操作の結果は次のとおりです。

zhong_guo_hua
吃饭,选择用筷子。

2.マルチレベルの継承

中国人もアジア人ですよね、アジア人も陸生ですよね、陸生も先進動物から進化しましたよね。
そんなことを言っても、実はみんなに真実を理解してもらいたいです。好きなだけ拡張できます!

class Earth_man:
    eye_number = 2

# 中国人继承了地球人
class Chinese(Earth_man):
    eye_color = 'black'

# 台湾人继承了中国人,同时也继承了地球人。
class TAIWANREN(Chinese):
    say = 'zhong_guo_hua'
    

JAY = TAIWANREN()
print(JAY.eye_number)
print(JAY.eye_color)

操作の結果は次のとおりです。

2
black

3.多重継承

今日は、継承を理解します!
もちろん、一人の人について話すとき、それは複数の国からの混血の人である可能性もあります。父親は中国人で、母親はアメリカ人です。
例を挙げましょう!

class BABA:
    born_city = 'CHINA'
    EATING    = 'noodles'

    def diet(self):
        print('我们爱吃米饭。')

class MAMA:
    settle_city = 'Amercia'
    EATING   = 'bread'

    def diet(self):
        print('我们爱吃甜食。')

class MABA(BABA,MAMA):  
    pass

tommi_wei = MABA()

print(tommi_wei.settle_city)

print(tommi_wei.born_city)
# 方法调用,和属性调用一样,也符合就近原则。
tommi_wei.diet()

操作の結果は次のとおりです。

Amercia
CHINA
我们爱吃米饭。

第四に、クラスのカスタムコードの実装

1.カスタマイズ、コードを追加できます

誰もがコードを詳しく調べても何も見つかりませんでした。クラスのカスタマイズはどこにありますか?

class Chinese:
    eye = 'black'
    speak = 'zhong_guo_hua'

    def eat(self):
        print('吃饭,选择用筷子。')

class Taiwanren(Chinese):
    born = 'TAIWAN'
    def fruits(self):
        print('这里特产水果')

JAY=Taiwanren()
print(JAY.speak)
print(JAY.born)
JAY.eat()
JAY.fruits()

運転結果

zhong_guo_hua
TAIWAN
吃饭,选择用筷子。
这里特产水果

2.カスタマイズ、書き換えも可能

class CHINA:

    def land_area(self,area):
        print('台湾省占中国陆地面积是%d万平方公里左右。' % area)

class TAIWAN(CHINA):
    # 为参数 area 设置默认值。
    def land_area(self, area = 960, rate = 0.00375):
        CHINA.land_area(self, area * rate)

taiwanren = TAIWAN()
taiwanren.land_area()
# 两个参数都有默认值,所以可以这么调用。

運転結果

台湾省占中国陆地面积是3万平方公里左右。

細部への注意!親クラスのメソッドを継承するサブクラスの操作は、defステートメントの後に親クラスのメソッド(パラメーター)をたどることです。

上司が来ています

1.愛の教育

みんなの理解を深めるために、BOSSの前菜をもう2つ用意しましょう!

お父さんは真面目な人、お母さんは愛する人です

class FATHER:
    face = 'serious'
    job = 'ENGINEER'


class MOTHER:
    face = 'sweet'
    parenthood = 'MOM'


class MotherMore(MOTHER, FATHER):
    pass

class FatherMore(FATHER, MOTHER):
    face = 'gentle'

FACE3 = MotherMore()
FACE4 = FatherMore()
print(FACE3.face)
print(FACE4.face)

演算結果:

sweet
gentle

2.学習効率

class xuexixiaolv:
    def __init__(self, name, work=None, time=0.00, time_effective=0.00): 
        self.name           = name
        self.work           = work
        self.time           = time
        self.time_effective = time_effective

    def count_time(self, hour, rate):
        self.time += hour
        self.time_effective = hour * rate

class COMPUTER(xuexixiaolv):
    def __init__(self, name):
        xuexixiaolv.__init__(self, name, work='MATH', time=0.00, time_effective=0.00)

    def count_time(self, hour, rate=1):
        xuexixiaolv.count_time(self, hour, rate)

TEST1 = xuexixiaolv('BAN')
TEST2 = COMPUTER('LISA')
print(TEST1.work)
print(TEST2.work)
TEST1.count_time(10, 0.8)
TEST2.count_time(10)
print(TEST1.time_effective )
print(TEST2.time_effective )

運転結果

None
MATH
8.0
10

今日の勉強は以上です。またお会いしましょう!このセクションの内容がお役に立てば幸いです。
私の「人間性の弱点」を購読して、あなたに別の感覚を与えるために、みんなを歓迎します!

おすすめ

転載: blog.csdn.net/weixin_46259642/article/details/114942038