Lớp bên trong python không được xác định

Xin chào, tôi đang cố triển khai mã để nói chuyện với một trình tạo dạng sóng tùy ý. Mục tiêu cuối cùng là nói chuyện đồng thời với nhiều kênh của hai trình tạo để so sánh độ chính xác của chúng

Tôi muốn tạo Kênh lớp lồng nhau trong Trình tạo lớp bên ngoài. Tôi muốn Kênh lớp bên trong chứa trong đó các chức năng khác nhau để giao tiếp với kênh đã chỉ định của trình tạo đã chỉ định. Để làm điều này, tôi cần đối tượng được tạo trong Kênh lớp bên trong để có thể đọc tên được gán cho đối tượng bên ngoài. Tôi hy vọng mã trông giống như bên dưới

class Generator:
    def __init__[self, name]:
        self.name = name

    class Channel:
        def __init__[self, number]:
            self.number = number

        def sine[self, [actual parameters for function]]:
            *talk to generator from here - requires variable 'Generator.name'

gen1 = Generator["name of generator"]
c1 = gen1.Channel[1]
c1.sine[[actual parameters for function]]

Tôi đã thử thêm super[] và biến lớp lồng nhau thành lớp con, nhưng dường như không có gì hiệu quả. Tôi dường như không thể tự động chuyển tên của trình tạo đến các hàm trong đối tượng lồng nhau. Bất kỳ trợ giúp sẽ được đánh giá cao

Xin chào các chuyên viên máy tính và chào mừng trong bài viết này, chúng tôi sẽ đề cập đến các lớp Nested trong Python. Như chúng ta đã biết Python là một ngôn ngữ lập trình hướng đối tượng. Vì vậy, một lớp là một mã cần thiết để tạo các đối tượng. Khi một lớp được khởi tạo, một số phương thức ma thuật được gọi tự động. Chúng tôi đã trình bày chi tiết các phương pháp ma thuật khác nhau

Chúng ta hãy thử tìm hiểu tổng quan về lớp lồng nhau trong python. Một lớp được định nghĩa trong một lớp khác được gọi là Lớp lồng nhau. Nếu một đối tượng được tạo bằng lớp lồng nhau thì đối tượng đó cũng có thể được tạo bằng lớp Parent. Hơn nữa, một lớp cha có thể có nhiều lớp lồng nhau trong đó. Khi chúng tôi tiếp tục trong bài viết này, chúng tôi sẽ đề cập chi tiết mọi thứ

nội dung

  • Cần các lớp lồng nhau
  • Tạo các lớp lồng nhau trong Python
  • Các loại lớp bên trong
    • 1. Nhiều lớp bên trong
    • 2. Lớp bên trong đa cấp
  • Phần kết luận

Cần các lớp lồng nhau

Hãy để chúng tôi cố gắng hiểu tại sao chúng tôi cần các Lớp lồng nhau. Chúng ta có con người và quần áo, không có con người thì không cần quần áo. Vì vậy, chúng ta có thể coi quần áo là lớp người lồng nhau. Với sự trợ giúp của lớp lồng nhau, chúng ta cũng có thể ẩn mã. Ngoài ra, đối với quan điểm của lập trình viên, việc tương quan giữa các lớp và nâng cao hiểu biết sẽ dễ dàng hơn

Tạo các lớp lồng nhau trong Python

Trong phần này, chúng ta sẽ chủ yếu tập trung vào việc tạo các lớp lồng nhau. Để làm như vậy chúng ta hãy xem xét một ví dụ

class language: 
  def __init__[self]: 
    self.language = 'PYTHON'
    self.lg = self.specification[] 
  def show[self]: 
    print["Language:", self.language] 
  class specification: 
     def __init__[self]: 
        self.type = 'HIGH-LEVEL'
        self.founded = '1991'
     def display[self]: 
        print["type:", self.type] 
        print["Founded:", self.founded] 
 
 
out = language[] 
out.show[] 
ppool = out.lg 
ppool.display[] 

Language: PYTHON
type: HIGH-LEVEL
Founded: 1991

Ở trên, chúng ta đã tạo thành công một lớp lồng nhau. Bây giờ chúng ta hãy đi từng dòng một và hiểu rằng chúng ta đã làm như vậy. Vì vậy, lúc đầu, chúng tôi đã tạo một lớp có tên ngôn ngữ. Bên trong nó, chúng tôi đã sử dụng từ khóa self. Từ khóa self là nơi nghỉ ngơi mà qua đó chúng ta có thể truy cập thuộc tính và phương thức của lớp đã tạo. Bên trong lớp ngôn ngữ, chúng ta đã tạo một lớp lồng nhau khác gọi là đặc tả. Tương tự như vậy, chúng tôi đã xác định các thông số kỹ thuật. Cuối cùng, chúng tôi nhận được đầu ra mong muốn của chúng tôi

Các loại lớp bên trong

Lớp bên trong có thể được chia thành các phần mà chúng ta sẽ đề cập chi tiết tiếp theo

1. Nhiều lớp bên trong

class Employe:
    def __init__[self]:
        self.name = "Employe"
        self.intern = self.intern[]
        self.head = self.head[]

    def show[self]:
        print['Employe List']
        print['Name:', self.name]

    class intern:
        def __init__[self]:
            self.name = 'Smith'
            self.Id = '657'


        def display[self]:
            print["Name:", self.name]
            print["Id:", self.Id]

    class head:


        def __init__[self]:
            self.name = 'Auba'
            self.Id = '007'

        def display[self]:
            print["Name:", self.name]
            print["Degree:", self.Id]


outer = Employe[]
outer.show[]

d1 = outer.intern
d2 = outer.head
print[]
d1.display[]
print[]
d2.display[]

đầu ra

Employe List
Name: Employe
Name: Smith
Id: 657
Name: Auba
Degree: 007

Một lớp có nhiều hơn một lớp bên trong được gọi là Nhiều lớp bên trong. Trên đây chúng ta đã thực hiện thành công. Ở đây lớp Employe là lớp bên ngoài của chúng ta. Bên trong đó chúng tôi đã tạo 2 lớp con. Một tên theo tên của Thực tập sinh và một tên theo tên của người đứng đầu

2. Lớp bên trong đa cấp

class multi:


    def __init__[self]:

        self.inner = self.Inner[]

        self.innerinner = self.inner.InnerInner[]

    def show[self]:
        print["This is Outer class"]
        

    ## inner class
    class Inner:


        def __init__[self]:

            self.innerinner = self.InnerInner[]

        def show_classes[self]:
            print["This is Inner class"]
            print[self.innerinner]


        class InnerInner:

            def inner_display[self, msg]:
                print["InnerInner class"]
                print[msg]

        def inner_display[self, msg]:
            print["This is Inner class"]
            print[msg]

outer=multi[]
outer.show[]
inner = multi.Inner[]


innerinner = inner.InnerInner[]


innerinner.inner_display["completed"]

đầu ra

This is Outer class
InnerInner class
completed

Lớp đa cấp có thể hiểu là lớp có lớp bên trong. Ngoài ra, lớp bên trong có một lớp bên trong. Từ mã, bạn có thể biết được cách thực hiện quy trình cụ thể này. Cả hai loại đều dễ thực hiện và dễ hiểu. Bạn có thể sử dụng chúng theo nhu cầu của bạn

Phần kết luận

Trong bài viết này, chúng tôi đã đề cập đến các lớp lồng nhau trong Python. Chúng tôi đã xem xét sự cần thiết của các lớp lồng nhau trong lập trình. Sau đó, chúng tôi cũng xem xét cách triển khai lớp lồng nhau thông qua một ví dụ. Chúng tôi cũng đã xem xét các loại lớp lồng nhau khác nhau

Tôi hy vọng bài viết này có thể xóa tan mọi nghi ngờ. Nhưng trong trường hợp bạn có bất kỳ câu hỏi nào chưa được giải quyết, vui lòng viết chúng bên dưới trong phần bình luận. Đọc xong cái này, tại sao không đọc về getpass tiếp theo

Python có hỗ trợ các lớp bên trong không?

Các lớp bên trong hoặc lồng nhau không phải là tính năng được sử dụng phổ biến nhất trong Python . Tuy nhiên, nó có thể là một tính năng tốt để triển khai mã. Mã này rất dễ tổ chức khi bạn sử dụng các lớp bên trong hoặc lớp lồng nhau.

Chúng ta có thể định nghĩa lớp bên trong lớp không?

Trong Java, có thể định nghĩa một lớp bên trong một lớp khác, các lớp như vậy được gọi là các lớp lồng nhau

Là lớp bên trong giống như lớp con?

Sự khác biệt giữa lớp bên trong và lớp con là gì? . An inner class is a class that is nested or defined within another class. Mặt khác, một lớp con là một lớp dẫn xuất từ ​​một lớp khác .

Chủ Đề