ホームページ バックエンド開発 Python チュートリアル Python の関数呼び出しとパラメーターの受け渡し (分析例)

Python の関数呼び出しとパラメーターの受け渡し (分析例)

Aug 15, 2018 pm 01:51 PM

今日の記事では、Python の関数呼び出しとパラメーターの受け渡しに関する知識について学びます。関数とは何かを理解した後、python が関数をどのように使用するかを理解する必要があります。 結局のところ、関数が何であるかだけを知っていて、Python で関数を呼び出す方法がわからない場合は、関数の定義を知っているだけでは役に立ちません。関数を呼び出す方法を学び始めましょう。

関数呼び出し: 関数の定義では、関数に名前を付け、関数に含まれるパラメーターとコード ブロック構造を指定するだけです。この関数の基本構造が完成したら、別の関数呼び出しを通じて、または Python プロンプトから直接実行できます。次の例では、printme() 関数を呼び出します。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");
ログイン後にコピー

上記の例の出力結果は次のとおりです。

我要调用用户自定义函数!
再次调用同一函数
ログイン後にコピー

これは非常に単純なので、理解するには実験するだけで済みます。

次に、パラメータの受け渡しについて説明します。 Python では、型はオブジェクトに属し、変数には型がありません。

次のコーディングを参照してください:

a=[1,2,3]
 
a="Runoob"
ログイン後にコピー

(上記のコードでは、[1,2,3] はリスト型、「Runoob」は文字列型、変数 a は型はありません。これはオブジェクト (ポインター) への単なる参照であり、List 型オブジェクトまたは String 型オブジェクトにすることができます。)

Changeable (可変) およびimmutable (不変) オブジェクト

(Python では、文字列、タプル、数値は不変オブジェクトですが、リスト、辞書などは変更可能なオブジェクトです。)

##1. 不変型: 変数に a=5 が割り当てられた後、a=10 が割り当てられます。ここでは、新しい int 値オブジェクト 10 が実際に生成され、次に a がそれを指します。 5 は変更されずに破棄され、a の値は新しく生成された a と同等になります。

2. 変数の種類: 変数の代入 la=[1,2,3,4] とその後の代入 la[2]=5 はリスト la の 3 番目の要素の値を変更しますが、la 自体には何も変更されません。移動しますが、内部値の一部が変更されます。

Python 関数のパラメータ受け渡し:

1. 不変型: 整数、文字列、タプルなどの C ライクな値受け渡し。たとえば、 fun(a) は a の値を転送するだけで、 a オブジェクト自体には影響しません。たとえば、 fun(a) 内の a の値を変更すると、コピーされた別のオブジェクトが変更されるだけで、 a 自体には影響しません。

2. 変数の型: C の参照転送と同様、リスト、辞書など。たとえば、実際には fun (la) に la が渡されますが、変更後は fun の外側の la も影響を受けます

(厳密に言えば、Python 内のすべてのものはオブジェクトです)値渡しか参照渡しかを言うことはできません。不変オブジェクトを渡すか、変更可能オブジェクトを渡すと言うべきです。)

不変オブジェクトのインスタンスを渡す Python :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def ChangeInt( a ):
    a = 10
 
b = 2
ChangeInt(b)
print b # 结果是 2
ログイン後にコピー

(インスタンスには int オブジェクト 2 があり、それを指す変数は b です。これを ChangeInt 関数に渡すと、変数 b は値によってコピーされます。a と b は両方とも同じを指しますInt オブジェクト。=10 で、新しい int 値オブジェクト 10 を作成し、それを指すようにします。)

Python は変数オブジェクト インスタンスを渡します:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def changeme( mylist ):
   "修改传入的列表"
   mylist.append([1,2,3,4]);
   print "函数内取值: ", mylist
   return
 
# 调用changeme函数
mylist = [10,20,30];
changeme( mylist );
print "函数外取值: ", mylist
ログイン後にコピー

Instance 関数に渡されるオブジェクトと最後に新しい内容が追加されるオブジェクトは同じ参照を使用するため、出力結果は次のようになります。

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]
ログイン後にコピー

上記は私がやったものです。今日は関数の呼び出し方とPythonのパラメータの受け渡しについて説明したいと思います。上記の知識ポイントは例を示していますが、やはり自分で試してみる必要があります。結局のところ、自分でやってみなければ、紙の上で話しているのと同じです。実際に実践することが、自分の考えを検証する最良の方法であり、方法です。学んだ。最後に、この記事が Python を学習している皆さんのお役に立てれば幸いです。
関連知識の詳細については、php 中国語 Web サイトをご覧ください。
Pythonチュートリアル列。

以上がPython の関数呼び出しとパラメーターの受け渡し (分析例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

See all articles