オブジェクト指向:知人

オブジェクト指向知人

関数型プログラミング対プロセス指向プログラミングの1.1レビュー

測定オブジェクト指向プログラミングプロセスのすべての要素の数。

s1 = 'fjdsklafsjda'
count = 0
for i in s1:
count += 1

l1 = [1,2,3,4]
count = 0
for i in l1:
count += 1

def func(s):
count = 0
for i in s:
count += 1
return count
func('fdsafdsa')
func([1,2,3,4])

これとは対照的に見つかった:最も重要な二つの特徴よりもプロセス指向プログラミング機能プログラミングを:

図1に示すように、コードの再利用性を低減します。

2、コードの可読性を向上させます。

1.2関数型プログラミングオブジェクト指向プログラミングVS

関数型プログラミングの
オブジェクト指向プログラミング

最初のオブジェクト指向の利点を比較して分かるように。

オブジェクト指向プログラミング:より合理的な、あなたのコードがより明瞭にし、同様のタイプの関数の集まりです。

彼は、オブジェクト指向で何を見て、前に第二の利点を述べました。

オブジェクト指向プログラミングオブジェクトは神として自分自身を考える必要があります理由を理解するオブジェクト(神の思考)の中核であり、すべてのものは、すべてのオブジェクトは、神が存在しない世界の目で作成することができる存在です。

クラスとは何ですか?オブジェクトとは何ですか?

クラス:同じ特性および機能を持っているもののクラス。

オブジェクト:クラスの具体的な症状です。

具体的にそれらのいくつか:最初の⻋は車輪を持っているかを説明を説明し、ディスク、エンジンは、実行されることに方向があるが⻋顔は何⼀説明するのに良いですが、名前、年齢、趣味を持って歌いますとダンスの思考....?フェイスは、電車の中でとても広くている人は、等である。しかし、私の具体的な車は、あなたがオブジェクトである人物です。

猫は、飼いならされたクラス、あなたは大きなオレンジ色です。

犬2を飼いならされたクラスの隣で - カザフスタンでは、オブジェクトです。

⾯オブジェクトを自分の作成していると考えられたオブジェクトへ。独自のオブジェクトの世界にあなたがいるシーンを作成して、神の⾯である。あなたは⻋ますか、事の乾燥、乾燥したもの。あなたは顔、ドライ、ドライなものの事に直面することができるようにしたいです。

第二の利点:オブジェクト指向、実際には、問題の神の斜視外観を持っているために、一般的なクラステンプレート(植物)、オブジェクトが特定のテンプレートからインスタンス化されます。

クラスの1.3構造

class Human:
"""
此类主要是构建人类
"""
mind = '有思想' # 第一部分:静态属性 属性 静态变量 静态字段
dic = {}
l1 = []
def work(self): # 第二部分:方法 函数 动态属性
print('人类会工作')

クラスは、クラスを定義し、同じキーワードDEFの使用です。
人間は、クラス名の一種であるクラス名はキャメル(キャメルケース)スタイルの命名を使用し、先頭にアンダースコアプライベートクラスが利用可能大文字。
2つの部分に分割される一般的な方向のクラス構造
静的変数。
動的な方法。

II。クラス名クラスの研究の観点から

オペレーティング静的プロパティの2.1クラス名

クラス名.__ dict__に道:2.11まず、すべてのクラスの内容を表示します。
class Human:
"""
此类主要是构建人类
"""
mind = '有思想' # 第一部分:静态属性 属性 静态变量 静态字段
dic = {}
l1 = []
def work(self): # 第二部分:方法 函数 动态属性
\# print(self)
print('人类会工作')

print(Human.__dict__)
print(Human.__dict__['mind'])
Human.__dict__['mind'] = '无脑'
print(Human.__dict__) # 错误

このようにして唯一のクエリではなく、追加および削除。

第一の方法(通常は別々の属性クエリなし)、ユーザーのクエリの唯一の全体の内容

2.12秒:ユニバーサルポイント。

class Human:
"""
此类主要是构建人类
"""
mind = '有思想' # 第一部分:静态属性 属性 静态变量 静态字段
dic = {}
l1 = []
def work(self): # 第二部分:方法 函数 动态属性
\# print(self)
print('人类会工作')
print(Human.mind) # 查
Human.mind = '无脑' # 改
print(Human.mind)
del Human.mind # 删
Human.walk = '直立行走'
print(Human.walk)

あなたは普遍的で、単一の属性クラス変更探索点を追加または削除することができます

  単一の動作点は、方法の普遍的な性質であるならば、あなたは、クエリクラスのすべての内容をしたい場合は、最初の方法により__dict__:**上記の二つの結論を作ります。**

2.2動的なクラス名を動作させる方法

  提供される2つの特別な方法に加えて:静的クラスメソッドへの方法は、この方法は、一般クラスのクラス名で動作しません。

class Human:
"""
此类主要是构建人类
"""
mind = '有思想' # 第一部分:静态属性 属性 静态变量 静态字段
dic = {}
l1 = []
def work(self): # 第二部分:方法 函数 动态属性
# print(self)
print('人类会工作')
def tools(self):
print('人类会使用工具')

Human.work(111)
Human.tools(111)
下面可以做,但不用。
Human.__dict__['work'](

III。オブジェクトクラスの観点から研究

3.1オブジェクトとは何ですか

オブジェクトは、限り()を持つクラス名として、クラスの外にあるプロセスの一例であり、これは、オブジェクトをインスタンス化します。

何が起こるか、次のコードを実行しますか?

class Human:
mind = '有思想'
def **init**(self):
print(666)
print(self) # <**main**.Human object at 0x00000191508AA828>

def work(self): 
    print('人类会工作')

def tools(self):
    print('人类会使用工具')
    
obj = Human() # 只要实例化对象,它会自动执行__init__方法
print(obj) # <**main**.Human object at 0x00000191508AA828>

そして、そのOBJとして自己アドレスは同じです

実際には、オブジェクトの合計をインスタンス化し、三つのことがありました:

  1は、メモリ内のオブジェクト・スペースを開きました。

  図2は、自動的に実行されるクラスの__init__方法、及び対象空間(メモリアドレス)__init__メソッド第1位置パラメータ自己を通過しました。

  図3は、__init__メソッドで自己を通じてオブジェクト空間に属性を追加します。

例:

class Human:
mind = '有思想'
language = '使用语言'
def **init**(self,name,sex,age,hobby):
\# self 和 obj 指向的是同一个内存地址同一个空间,下面就是通过self给这个对象空间封装四个属性。
self.n = name
self.s = sex
self.a = age
self.h = hobby

obj = Human('barry','男',18,'运动')

オブジェクトは、操作対象空間3.2属性

3.21オブジェクトのクエリオブジェクトのすべてのプロパティ。オブジェクト.__ dict__に

class Human:
mind = '有思想'
language = '实用语言'
def __init__(self,name,sex,age,hobby):
    # self 和 obj 指向的是同一个内存地址同一个空间,下面就是通过self给这个对象空间封装四个属性。
    self.n = name
    self.s = sex
    self.a = age
    self.h = hobby
obj = Human('barry','男',18,'运动')
print(obj.__dict__) # {'n': 'barry', 'h': '运动', 's': '男', 'a': 18}

3.22オブジェクト操作単一属性オブジェクト。全能のポイント。

class Human:
mind = '有思想'
language = '实用语言'
def __init__(self,name,sex,age,hobby):
    # self 和 obj 指向的是同一个内存地址同一个空间,下面就是通过self给这个对象空间封装四个属性。
    self.n = name
    self.s = sex
    self.a = age
    self.h = hobby
    obj = Human('barry','男',18,'运动')
obj.job = 'IT' # 增
del obj.n # 删
obj.s = '女' # 改
print(obj.s) # 查
print(obj.__dict__)

3.3 Objectクラスは参照属性

class Human:
mind = '有思想'
language = '实用语言'
def __init__(self,name,sex,age,hobby):
    self.n = name
    self.s = sex
    self.a = age
    self.h = hobby
obj = Human('barry','男',18,'运动')
print(obj.mind)
print(obj.language)
obj.a = 666
print(obj.a)

3.4メソッドクラスオブジェクトの操作

class Human:
mind = '有思想'
language = '实用语言'
def __init__(self,name,sex,age,hobby):
    self.n = name
    self.s = sex
    self.a = age
    self.h = hobby

def work(self):
    print(self)
    print('人类会工作')

def tools(self):
    print('人类会使用工具')

obj = Human('barry','男',18,'运动')
obj.work()
obj.tools()

  この方法は、一般的に、オブジェクト上のクラス(外側の、静的メソッドのうちクラスメソッド)、およびこれらの方法のオブジェクトインプリメンテーションによって自動的にオブジェクト・スペース内のメソッドに渡された自己パラメータです。

何自己のですか?

実際には、自己のクラスメソッド(関数)第1位置パラメータではなく、インタプリタは、自動的にオブジェクトのパス自己のこの関数を呼び出します。だから我々は、自己を提供するクラスの大会の最初の引数、このオブジェクトの代表です。
クラスオブジェクトの複数インスタンス化することができます

obj1= Human('小胖','男',20,'美女')
obj2= Human('相爷','男',18,'肥女')
print(obj1,obj2)
print(obj1.__dict__)
print(obj2.__dict__)

おすすめ

転載: www.cnblogs.com/qidaii/p/11373511.html