Tidak ada tipe data dengan python

Jawaban Martijn menjelaskan apa None dalam Python, dan dengan benar menyatakan bahwa buku itu menyesatkan. Sejak programmer Python sebagai aturan tidak akan pernah mengatakan

Menetapkan nilai ________ 62 _______ ke variabel adalah salah satu cara untuk meresetnya ke keadaan semula, kosong

sulit untuk menjelaskan apa maksud Briggs dengan cara yang masuk akal dan menjelaskan mengapa tidak ada seorang pun di sini yang tampak senang dengannya. Satu analogi yang mungkin bisa membantu

Di Python, nama variabel seperti stiker yang ditempelkan pada objek. Setiap stiker memiliki nama unik yang tertulis di atasnya, dan hanya bisa pada satu objek pada satu waktu, tetapi Anda dapat menempelkan lebih dari satu stiker pada objek yang sama, jika Anda mau. Ketika Anda menulis

F = "fork"

Anda menempelkan stiker "F" pada objek string "fork". Jika Anda kemudian menulis

F = None
_

Anda memindahkan stiker ke objek ________ 62 _______

Apa yang diminta Briggs untuk Anda bayangkan adalah bahwa Anda tidak menulis stiker "F", sudah ada F stiker di None, dan yang Anda lakukan hanyalah memindahkannya, dari None ke "fork". Jadi saat Anda mengetik

F = None
3, Anda "menyetel ulang [ting] ke keadaan semula, kosong", jika kami memutuskan untuk memperlakukan None sebagai makna
F = None
5

Aku bisa melihat apa yang dia maksud, tapi itu cara yang buruk untuk melihatnya. Jika Anda memulai Python dan mengetik

F = None
_6, Anda lihat

>>> print(F)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'F' is not defined

dan

F = None
_7 berarti Python tidak mengenali nama F, karena tidak ada stiker seperti itu. Jika Briggs benar dan
F = None
3 me-reset F ke keadaan semula, maka seharusnya ada di sana sekarang, dan kita akan melihat

>>> print(F)
None
_

seperti yang kita lakukan setelah kita mengetik

F = None
_3 dan menempelkan stiker di None


Jadi hanya itu yang terjadi. Pada kenyataannya, Python hadir dengan beberapa stiker yang sudah dilampirkan ke objek (nama bawaan), tetapi yang lain Anda harus menulis sendiri dengan garis seperti

>>> print(F)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'F' is not defined
3 dan
>>> print(F)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'F' is not defined
4 dan
>>> print(F)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'F' is not defined
5, dan kemudian Anda dapat menempelkannya di objek lain nanti (seperti
>>> print(F)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'F' is not defined
6 atau
F = None
3 . )

Briggs berpura-pura bahwa semua stiker yang mungkin ingin Anda tulis sudah menempel di objek ________ 62 _______

Ringkasan. dalam tutorial ini, Anda akan belajar tentang Python

print(type(None))

Code language: Python (python)
7 dan cara menggunakannya dengan benar dalam kode Anda

Pengantar nilai Python Tidak ada

Dalam Python,

print(type(None))

Code language: Python (python)
_7 adalah objek khusus dari kelas

print(type(None))

Code language: Python (python)
9. Untuk menggunakan nilai

print(type(None))

Code language: Python (python)
_7, tentukan

print(type(None))

Code language: Python (python)
7 sebagai berikut

None

Code language: Python (python)

Jika Anda menggunakan fungsi

<class 'NoneType'>

Code language: Python (python)
_2 untuk memeriksa jenis nilai

print(type(None))

Code language: Python (python)
7, Anda akan mendapatkan kelas

print(type(None))

Code language: Python (python)
9

print(type(None))

Code language: Python (python)

Keluaran

<class 'NoneType'>

Code language: Python (python)

print(type(None))

Code language: Python (python)
_7 adalah objek tunggal dari kelas

print(type(None))

Code language: Python (python)
9. Ini berarti Python membuat satu dan hanya satu objek

print(type(None))

Code language: Python (python)
7 saat runtime

Oleh karena itu, jika Anda menggunakan persamaan (

<class 'NoneType'>

Code language: Python (python)
_8) atau

<class 'NoneType'>

Code language: Python (python)
9 untuk membandingkan

print(type(None))

Code language: Python (python)
7 dengan

print(type(None))

Code language: Python (python)
7, Anda akan mendapatkan hasil

print(None == None) print(None is None)

Code language: Python (python)
2

print(None == None) print(None is None)

Code language: Python (python)

Keluaran

True True

Code language: Python (python)

Sebaiknya gunakan operator

print(None == None) print(None is None)

Code language: Python (python)
_3 atau

print(None == None) print(None is None)

Code language: Python (python)
4 untuk membandingkan nilai dengan

print(type(None))

Code language: Python (python)
7

Alasannya adalah objek yang ditentukan pengguna dapat mengubah perilaku operator kesetaraan dengan mengganti metode

print(None == None) print(None is None)

Code language: Python (python)
6. Misalnya

class Apple: def __eq__(self, other): return True apple = Apple() print(apple == None)

Code language: Python (python)

Keluaran

True

Code language: Python (python)

Perhatikan bahwa Anda tidak dapat mengesampingkan perilaku operator

<class 'NoneType'>

Code language: Python (python)
_9 seperti yang Anda lakukan dengan operator kesetaraan (

<class 'NoneType'>

Code language: Python (python)
8)

Penting juga untuk dicatat bahwa objek None memiliki fitur berikut

  • print(type(None))

    Code language: Python (python)
    7 bukan nol (0, 0. 0, …)
  • print(type(None))

    Code language: Python (python)
    7 tidak sama dengan

    True True

    Code language: Python (python)
    1
  • print(type(None))

    Code language: Python (python)
    7 tidak sama dengan string kosong (

    True True

    Code language: Python (python)
    3)
  • Membandingkan

    print(type(None))

    Code language: Python (python)
    _7 dengan nilai apa pun akan mengembalikan

    True True

    Code language: Python (python)
    1 kecuali

    print(type(None))

    Code language: Python (python)
    7 itu sendiri

Aplikasi dari objek Python None

Mari kita ambil beberapa contoh praktis menggunakan objek

print(type(None))

Code language: Python (python)
7

1) Menggunakan Python None sebagai nilai awal untuk sebuah variabel

Ketika sebuah variabel tidak memiliki nilai awal yang berarti, Anda dapat menetapkan

print(type(None))

Code language: Python (python)
7 padanya, seperti ini

state = None

Code language: Python (python)

Kemudian Anda dapat memeriksa apakah variabel diberi nilai atau tidak dengan memeriksanya dengan

print(type(None))

Code language: Python (python)
7 sebagai berikut

if state is None: state = 'start'

Code language: Python (python)

2) Menggunakan objek Python None untuk memperbaiki masalah argumen default yang bisa berubah

Fungsi berikut menambahkan warna ke daftar

def append(color, colors=[]): colors.append(color) return colors

Code language: Python (python)

Ini berfungsi seperti yang diharapkan jika Anda melewati daftar yang ada

print(type(None))

Code language: Python (python)
0

Keluaran

print(type(None))

Code language: Python (python)
1

Namun, masalah muncul saat Anda menggunakan nilai default dari parameter kedua. Misalnya

print(type(None))

Code language: Python (python)
2

Keluaran

print(type(None))

Code language: Python (python)
_3

Masalahnya adalah fungsi membuat daftar setelah ditentukan dan menggunakan daftar yang sama di setiap panggilan yang berurutan

Apakah Tidak Ada tipe data yang valid di Python?

None digunakan untuk mendefinisikan nilai null atau objek Null dengan Python. Itu tidak sama dengan string kosong, Salah, atau nol. Ini adalah tipe data dari objek kelas NoneType .

Mengapa Tidak Ada di Python?

Kata kunci None di Python adalah tipe data dan objek dari kelas NoneType. Kata kunci Tidak Ada digunakan untuk mendefinisikan variabel nol atau objek dengan Python . Tidak ada yang dapat ditugaskan ke variabel apa pun, tetapi objek NoneType baru tidak dapat dibuat. Kami tidak dapat mengubah referensi ke Tidak Ada dengan memberikan nilai padanya.

Apakah Tidak Ada di Python nol?

Python menggunakan kata kunci None untuk mendefinisikan objek dan variabel null . Meskipun Tidak ada yang melayani beberapa tujuan yang sama dengan nol dalam bahasa lain, itu adalah binatang buas yang sama sekali berbeda. Sebagai null dalam Python, Tidak ada yang tidak didefinisikan sebagai 0 atau nilai lainnya. Dalam Python, Tidak ada objek dan warga negara kelas satu.

Apa itu Tidak Ada vs nol di Python?

Python menggunakan kata kunci Tidak ada untuk mendefinisikan objek dan variabel nol. Meskipun Tidak ada yang melayani beberapa tujuan yang sama dengan nol dalam bahasa lain, itu adalah binatang buas yang sama sekali berbeda. Sebagai null dalam Python, Tidak ada yang tidak didefinisikan sebagai 0 atau nilai lainnya. Dalam Python, Tidak ada objek dan warga negara kelas satu