PYTHON's Fantasy Adventure 20:Mushroom Cool、オブジェクトを紹介します
レッスン20キノコかっこいい、オブジェクトを紹介します
アートではなく、人生ではありません
毎日正午にみんなで食事をするのに10分しかかからないので、何かすることがあれば、それを見て、簡単に言語をマスターしましょう!一緒に頑張りましょう。
PYTHONのファンタジーアドベンチャーワールドへようこそ!前述のように、今日は一緒にオブジェクトについて話しましょう!それらの年について話しましょう、私たちは何年も一緒にいましたが、それでも理解する対象はありません!世界を救うという仕事はとても疲れます。地球が爆発するかどうかは気にしません。自分の能力の範囲内で何かをしたいだけです。
記事のディレクトリ
1.なじみのない「オブジェクト」?
この概念を明確に理解するには、まず第一に、私たちは疲れていなければならず、涙を流さず、正しくなく、親切でなければなりません!このコンセプトといえば!
1.1クラス
人が他の動物よりも高い理由は、ある種の似たような特徴を持つものをグループ化する方法を知っているからです!これまでに見たことのないすべての動物に名前を付けるのではなく。非常に単純な真実、私たちがクラスを理解するのを手伝ってください!オンラインで何かを購入するとき、さまざまなタイプを参照してそれを行いますか?
実際、PYTHONシリーズの記事の最初から、クラスの概念が関係しています。たとえば、整数、文字列、浮動小数点数など、異なるデータ型は異なるクラスです!
print(type('100')) # '100'属于字符串类'str'
print(type(100)) # 1属于整数类'int'
print(type([100])) # [1]属于列表类'list'
演算結果:
<class 'str'>
<class 'int'>
<class 'list'>
または、一般的な理解では、今の記事では携帯電話やコンピューター、つまり電子製品を使用する場合があります。そして私たちは人間です!
1.2例
簡単に言えば、犬はクラスです!エルハは犬の大きなカテゴリーの例です!PYTHONの世界では、インスタンスはインスタンスとも呼ばれます!
さて、上記の基盤があれば、クラスの主要な問題を開始できます!
2.オブジェクトについて話します
PYTHONの世界では、オブジェクトはクラスとインスタンスのコレクションに相当します。これわかりますか?実際、クラスはオブジェクトと見なすことができ、インスタンスもオブジェクトと見なすことができます。
2.1クラスの作成と呼び出し
私たちが人や物を説明するとき、私たちは通常、彼をより多くの特徴を持つ類似点に分割します!
たとえば、外部レベルから:背が高く、豊かで、ハンサムで、白で、豊かで、美しい。
内側のレベルから:優しさ、偽善、親孝行、誠実さ、そして勇気。
PYTHONのファンタジーの世界では、それらがどのように分割されているか、しかし名前は異なります!最初のタイプの共通性を「属性」と呼び、2番目のタイプを「メソッド」と呼びます。
PYTHONでは、各クラスが独自の属性とメソッドを使用します。これは、このクラスのすべてのインスタンスの共有です。これは、すべてのインスタンスがクラス内のすべてのプロパティとメソッドを呼び出すことができることを意味します!
もちろん、悪者はテレビの悪者のようには決してならず、悪者は彼らの顔に書かれています!PYTHONの世界では、各クラスの定義も非常に抽象的です。
コードを使って話しましょう!
2.2クラスの作成
言うまでもありませんが、最初にコードを見てください。PYTHONの世界で、一緒にあなたのファンタジーを満足させてください!
class Mobile_Phone: # 类的创建class + 冒号
screen = True # 类的属性创建:
def show(self): # 实例方法的创建:def+方法名(self)
print('欢迎来到PYTHON的奇幻世界')
クラス内の割り当て変数は属性と呼ばれ、クラスで定義された関数はメソッドと呼ばれます。
インスタンスメソッドは、クラスメソッドの形式であり、最も一般的に使用される使用法である自己関数を使用して、クラス内のパラメーターを参照します。
私たちが学んだことを応用して、誰もが理解できるように例を書いてみましょう!
class Asian:
# 亚洲人是类!属性:头发是黑色的
hair = 'BLACK'
# 方法:打印出'吃饭,选择用筷子。'
def eat(self):
print('kuaizi')
2.3クラスコール
次に、クラスの呼び出しについて学ぶ必要があります!今の携帯電話の例です!自分でノックするのがベストです!
class Mobile_Phone: # 类的创建class + 冒号
screen = True # 类的属性创建:
def show(self): # 实例方法的创建:def+方法名(self)
print('欢迎来到PYTHON的奇幻世界')
my_iphone_max_512 = Mobile_Phone()
print(my_iphone_max_512.screen)
my_iphone_max_512.start()
my_iphone_max_512 = Mobile_Phone()このプロセスは次のように呼び出されます。クラスのインスタンス化、つまり、特定のクラスの下にインスタンスオブジェクトを作成します。
クラスのインスタンス化!
構文:インスタンス名=クラス名()
例:my_iphone_max_512 = Mobile_Phone()
意味:独自のインスタンスを作成した後、所属するクラスの属性とメソッドを呼び出すことができます。
class Mobile_Phone: # 类的创建class + 冒号
screen = True # 类的属性创建:
def show(self): # 实例方法的创建:def+方法名(self)
print('欢迎来到PYTHON的奇幻世界')
my_iphone_max_512 = Mobile_Phone()
print(my_iphone_max_512.screen)
my_iphone_max_512.show()
演算結果:
True
欢迎来到PYTHON的奇幻世界
皆さん、コードの最後の2行を見てください。
print(my_iphone_max_512.screen)は、クラス属性screenに対応する値Trueを取得し、print()で出力します。
my_iphone_max_512.show()はメソッドshow()を呼び出します。このメソッドの機能は、「Welcome to the fantasy worldofPYTHON」を直接出力することです。
このような問題があるかどうかはわかりませんが、メソッドを呼び出すときにパラメーターを渡す必要がないのに、自己を定義する必要があるのはなぜですか?
自分でそれを確認して考えることができます。後であなたに伝えるよ!
オブジェクトを学ぶ限り、私たちは勇敢に私たちが好きなオブジェクトに「ホン、XXX」と言うことができます。
class Asian:
# 亚洲人是类!属性:头发是黑色的
hair = 'BLACK'
# 方法:打印出'吃饭,选择用筷子。'
def eat(self):
print('kuaizi')
my_chinese = Asian()
print(my_chinese.hair)
my_chinese.eat()
演算結果:
BLACK
kuaizi
どうですか?素晴らしいですね。実際、それはそれほど難しいことではありません!誰もが自分を信じなければなりません。捕まえられない女神は存在しません。もしあれば、それはあなたがより良い人を持つに値することを意味します!
メソッドを要約します。
1.クラスを作成します
2.クラスを
インスタンス化します3.インスタンスを使用してクラスのプロパティとメソッドを呼び出します
今、私たちは徹底的に研究を続け、誰もがよりよく理解できるように、より多くの例を作成しています!
class Asian:
# 亚洲人是类!属性:头发是黑色的
hair = 'BLACK'
speak = 'Hanyu'
# 方法:打印出'吃饭,选择用筷子。'
def eat(self):
print('kuaizi')
tommi_wei = Asian()
dawenxi = Asian()
xiaopengpeng = Asian()
print(tommi_wei.hair)
print(dawenxi.speak)
xiaopengpeng.eat()
演算結果:
BLACK
Hanyu
kuaizi
驚くべきことではありませんか〜学び続けてください。次に、クラスを作成する際の2つの重要な問題を理解する必要があります。PYTHONを学んだら、学べない言語はありません!
2.3.1特別なパラメータ:自己
自己に関しては、私は実際に彼を影として理解しています!たぶんそれは私たちがよく言う電球です!自己は、インスタンス化プロセス中に渡されたデータを受け取ります。インスタンス化されたオブジェクトが作成されると、
自己は再び置き換えられ、あなたの愛を脅かしたり影響を与えたりするどころか、重要な役割を果たしません。
言うまでもありませんが、最初にコードを見てください。PYTHONの世界で、一緒にあなたのファンタジーを満足させてください!
class like:
# 亚洲人是类!属性:头发是黑色的
fruits = 'apple'
#hair = 'BLACK'
#speak = 'Hanyu'
# 方法:打印出'吃饭,选择用筷子。'
def eat(self,foods):
print(foods+'')
tommi_wei = like()
#dawenxi = Asian()
#xiaopengpeng = Asian()
print(tommi_wei.fruits)
tommi_wei.eat('苹果')
演算結果:
apple
苹果
しかし、これは不要ですか?リンゴが2個出てきました。では、どこに問題があるのでしょうか。みなさん、考えてみてください。クラス内のプロパティを呼び出したい場合、インスタンスが作成される前に、受信したデータを置き換える変数が必要です。この変数はselfです。
class like:
#
fruits = 'apple' # 类属性fruits
#hair = 'BLACK'
#speak = 'Hanyu'
def eat(monkey):
print(monkey.fruits + '好吃的水果')
monkey = like() ## 创建like的实例monkey
#dawenxi = Asian()
#xiaopengpeng = Asian()
#print(tommi_wei.fruits)
monkey.eat() # 调用实例方法
#print(dawenxi.speak)
#xiaopengpeng.eat()
演算結果:
apple好吃的水果
別の例を見てみましょう!
class NBA_basketball:
def HaDeng(self):
print('很高兴遇见你,大哥')
def DuLanTe(self):
self.HaDeng()
print('三弟,欢迎加入篮网')
basketball = NBA_basketball()
# 创建实例basketball
#basketball.HaDeng()
basketball.DuLanTe()
演算結果:
很高兴遇见你,大哥
三弟,欢迎加入篮网
从上面的例子中,可以看到basketball在调用DuLanTe()方法时,便会执行DuLanTe()内部的语句。此时,self.HaDeng()也就变成了basketball.HaDeng()。
总之,大家需要注意一下:
只要是在类中用def创建方法时,就必须把第一个参数位置留给self。调用方法的时候,可以忽略。
在类的方法内部想要调用类属性或者其他方法时,就需要采用self.属性名或者self.方法名。
2.3.2 初始化方法
定义初始化方法的格式是def __ init__(self),是由init加左右两边的【双】下划线组成( initialize “初始化”的缩写)。
初始化的好处是:当每个实例对象创建时,该方法内的代码无需调用就会自动执行。
class NBA:
def __init__(self):
print('很高兴遇见你,哈登,欢迎加入篮网')
DuLanTe = NBA()
运行结果:
很高兴遇见你,哈登,欢迎加入篮网
创建了实例,没有调用,初始化方法就已经执行了~你以为写到这里就结束了吗?远远没有!后面的内容更加精彩!
话不多说,先看代码,PYTHON的世界里,满足你的一起幻想!
利用这个方法,我们可以为类的属性设置初始值!
class NBA:
def __init__ (self):
self.HaDeng = 3000 # self.不能丢
self.DuLanTe = 4000
def body(self):
print('哈登年薪%s万美金' % self.HaDeng)
print('杜兰特年薪%s万美金' % self.DuLanTe)
NETS = NBA()
NETS.body()
运行结果:
哈登年薪3000万美金
杜兰特年薪4000万美金
除了上面的固定设置,也可以采用别的方法,传递可以变化的参数!
class NBA:
def __init__(self,TEAM):
self.TEAM = TEAM
def belong(self):
print('哈登不再属于%s。'%self.TEAM)
HaDeng = NBA('火箭')
HaDeng.belong()
运行结果:
哈登不再属于火箭。
学到了这里,任务已经完成了一大半了!继续加油!
3 面向对象
其实,在读研的时候,学过一门课程叫做面向过程!他的出现要比面向对象更早一些!
想要真正的了解面向对象编程的逻辑,就必须先学会什么是面向过程!还是以往的风格,复杂的知识简单化!
面向过程编程就是把一件复杂的事情,分成很多步骤!先做哪一步,接下来再做哪一步?最后再做哪一步!就是这样!
以我们PYTHON第18讲的内容为例!如果将工程计时器的代码改成面向对象编程语言的话?应该怎么修改呢?给大家留一个思考!
总结
この号の内容が退屈にならないことを願っています!私もあなたを助けたいです!PYTHONは実際にはそれほど難しくありません!あなたがファンタジーの冒険に自分自身を想像するとき、いくつかの興味深いことを経験します。多分あなたは楽しみを見つけるでしょう!次号の内容もとてもエキサイティングで、次号
でお会いしましょう〜話してみてください、私の感動の旅を知りたいですか?ちょうど私の「人間性の弱さ」で。
私の「人間性の弱さ」を読んで、あなたに別の感覚を与えるために、みんなを歓迎します!